ADO(ActiveX Data Objects) 

       一种程序对象,用于表示用户数据库中的数据结构和所包含的数据。在Microsoft Visual Basic编辑器中,可以使用ADO对象以及ADO的附加组件(称为Microsoft ADO Extensions for DLL and Security(ADOX))来创建或修改表和查询、检验数据库、或者访问外部数据源。还可在代码中使用ADO来操作数据库中的数据。 

ADODB  (Active Data Objects Data Base)  

       它是一种 PHP 存取数据库的中间函式组件,虽然 PHP 是建构 Web 系统强有力的工具,但是 PHP 存取数据库的功能,一直未能标准化,每一种数据库,都使用另一种不同且不兼容的应用程序接口(API)。为了填补这个缺憾,因此才有 ADODB 的出现。一旦存取数据库的接口予以标准化,就能隐藏各种数据库的差异,若欲转换至其它不同的数据库,将变得十分容易 

ADODC  

       它是一个图形化的控件,就是VB里部件--控件--Microsoft ADO Data Control 6.0

ADO、  ADODB、 ADODC 各自的使用: 

        ADO是一个数据库访问组件,可以在VB、VC、VC++程序中使用。它分为后面两种,ADODC和ADODB。

        ADODB是ADO数据对象类别名称,一般在代码中编写,如Dim con as New ADODB.Connection

        ADODC是一个图形化的控件,就是VB里部件--控件--Microsoft ADO Data Control 6.0。然后设置Adodc的,连接数据库。

              ADODC和ADODB可以同时在一个程序中使用,也可以单独使用。 

简单的说:

        ADO是种连接数据库的方式

        adodb是对象

        adodc是控件(一种特殊的对象)

之前做数据库时,添加部件

Microsoft ADO Data control 6.0 (SP6)

然后再声明Private adoConn As New ADODB.ConnectionPrivate adoRec As New ADODB.Recordset然后就可以操作数据库了。因为现在要用到datagrid,网上说它的dataSource要指向一个ADO data控件。我现在又回头看一下以前做的程序,有些地方又糊涂了。我添加的ado data控件,添上以后,名字是adodc。而我声明的Private adoConn As New ADODB.Connection却是adodb。为什么我添加了一个adodc的控件,要声明为adodb?而不添加这个控件,程序又会出错?adodc并没没有connection成员?ADODB.Recordset和adodc.Recordset是一个东西吗?添加ado data control到底有什么用啊?又没有使用这个控件。

答:

你理解有误:1)可以这样讲ADODC是封装的ADODB控件,你在窗体上添加ADODC控件后,VB则自动为工程引用Microsoft ActiveX Data Objects 2.5 Library(即引用ADODB),然后你当然可以使用ADODB了。

2)如果你只想用ADODB而不使用ADODC,你正确的做法是从VB的工程--引用里引用 Microsoft ActiveX Data Objects 2.5 Library 然后就可以定义操作ADODB了,不必添加ADODC控件。

3)ADODC有connection成员: Adodc1.Recordset.ActiveConnection 

4)ADODB.Recordset和adodc.Recordset都是记录集。

5)如果你想给datagrid绑定数据源可以绑定ADODC,也可以绑定ADODB:  set datagrid1.dataSource = ADODC1 这是绑定ADODC,需要添加ADODC控件。

----------------   dim adoConn As New ADODB.Connectiondim adoRs As New ADODB.Recordset

...set datagrid1.dataSource = adoRs 这是绑定ADODB,需要引用ADODB

 

建议使用ADO,不要使用ADODC控件,ADO更好控制一点,比如对多个表进行输入,删除操作,为了保持数据的完整性,可以使用事务来控制:

引用ADO后:

 Private Sub Command1_Click() 

Dim cn As New ADODB.Connection 

’混合验证方式的连接: 

cn.ConnectionString = “Provider=SQLOLEDB.1;Persist Security Info=False;User ID=登陆用户名;Password=登录密码;Initial Catalog=数据库名;Data Source=服务器别名/IP“

 ’集成验证方式的连接: 

cn.ConnectionString = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=服务器别名/IP“

 ’设置客户端游标

cn.CursorLocation = adUseClient

cn.Open On 

Error GoTo InsertErr

cn.BeginTrans ’开始事务

cn.Execute (“Insert Into 表1 values(’a1’,’b1’,’c1’)“) 

cn.Execute (“Insert Into 表2 values(’a2’,’b2’,’c2’)“) ’...... 

cn.CommitTrans ’提交事务 

Exit Sub

InsertErr: 

cn.RollbackTrans ’回滚事务 

MsgBox Err.Description

End Sub