ADO、ADODB和ADODC之间的区别和联系

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.Connection
Private 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.Connection
dim 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 

posted on 2017-04-16 23:35  葒塵冇你  阅读(2013)  评论(1)    收藏  举报