在VB中使用ADO

在程序设计中,ADO不是作为可视化的控件来使用的,如果要在应用程序中使用ADO组件,需要在"工程"菜单下的"引用"项中选该组件!该组件名称为:"Mircrosoft ActiveX Data Object 2.0 Library" (注:可能有2.5 2.6 或者其他版本)

3->ADO数据访问过程概要

使用ADO访问数据库类似于高速公路,首先,必须先修好公路,建立城市与城市间的连接,汽车才能在上面运行,ADO首先也需要建立程序与数据库间的连接,然后在这个连接上执行操作.
因此ADO提供了一个连接对象,该对象负责建立与数据库的连接,因此提供了一些属性以供设置,同时也提供了建立连接的方法与相应连接相关的事件!

连接建立之后,连接对像本身也提供了数据库执行操作的方法,但要更强有力的执行SQL的功能要由另一个命令对象来实现.

此外,一个非常重要的对象是记录集对像,因为在很多时候,需要执行数据库的查询,而查询的结果返回必须以某个容器来承载,就好比高速公路运送回来的货物需要建立一个物资仓库来进行货物的接收和储存.

还需要注意的是,要求程序与数据库之间断开连接.

连接对象,命令对象,和记录集对象分别对应ADO的Connection,Command,和Recordset三个对象

4->ADO Connection对象的属性方法和事件

1.连接对象(Connection)的主要属性

属性名称 属性说明
Provider 指定要进行连接的提供程序的名称,该属性标识要进行数据连接的数据库类型
CommandTimeOut 设置或者返回产生错误之前执行命令期间需等待的时间,单位为秒
ConnectionTimeOut 设置或者返回产生错误前建立连接期间所等待的时间,单位为秒
ConnectionString 设置建立到数据源的连接的信息,不同的信息单元以";"号分割
State 说明当前连接的状态信息

主要属性说明:

A.Provider
用 Provider 属性可以设置或返回连接提供者名称,也可以通过ConnectionString属性的内容或open方法的ConnectionString参数设置该属性

例如: Con.Provider="Microsoft.Jet.OLEDB.3.51"
Con.Provider="sqloledb"
分别表示access与Sql Server的连接支持!

B.ConnectionString

例如,可以按以下方式分别设置SQL Server与Access的连接字符串信息

Con.ConnectionString="driver={SQL Server};server=SV1;uid=sa;pwd=;database=pubs"

Con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\1.MDB"


请注意Access数据库与Sql Server数据库不同的连接方式,Access数据库需要指定具体的文件名,而Sql Server通过指定数据库名来访问

连接方式可以还可以是数据源,例如,可以使用建立的数据源连接:
Con.ConnectionString="DSN=ACCPSQL;server=SV1;uid=sa;pwd=;"

了解ADO记录集

创建了ADO连接,我们就可以通过ADO记录集来访问数据库了.同样,在使用记录集之前要先创建对象.然后调用Open方法打开记录集.它不但可以执行普通的SQL语句,还可以调用存储过程等等:
Open(VARIANT Source, VARIANT ActiveConnection, CursorTypeEnum CursorType,LockTypeEnum LockType, LONG Options).
其中ActiveConnection参数为一个有效的 Connection 对象名,就是我们在上面所说过的ADO连接对象.

CursorType参数指的是记录集光标类型,在官方的资料中是这样说明它的取值类型的:
1.adOpenForwardOnly 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。
2.adOpenKeyset 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。
3.adOpenDynamic 动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。
4.adOpenStatic 静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。
我们现在可不用管这么多,就用默认的adOpenStatic类型吧.

LockType参数,用于指示在什么时候锁定记录:
AdLockReadOnly (默认值)只读 - 不能改变数据。
AdLockPessimistic 保守式锁定(逐个) - 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
AdLockOptimistic 开放式锁定(逐个) - 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
AdLockBatchOptimistic 开放式批更新-用于批更新模式(与立即更新模式相对)。

                 更新操作:

               recordset.addnew  
              adodc.recordset.fields("id")=txtid.text  
              adodc.recordset.fields("name")=txtname.text  
              adodc.recordset.fields("adress")=txtadress.text  
              adodc.recordset.update

posted on 2009-02-20 14:12  wn323225  阅读(698)  评论(0)    收藏  举报