ADO中的ADODB允许开发人员进行详细的设置和编程,所以一旦掌握好了ADODC后就应该学习ADODB。ADODB是ADO数据对象的类别名称。它主要包括3个对象,如表6-1所示。
表6-1 ADODB的体系结构
对 象 名 称 | 对 象 功 能 |
Connection对象 | 数据库连接对象,建立和数据库的连接 |
Recordset对象 | 记录集对象,按照一定的命令提取出来的数据 |
Command对象 | 命令对象,更加灵活执行命令的对象 |
让我们这样来形象化理解ADODB中3个主要对象的含义。
1.Connection对象
如果我们把访问数据库的VB程序的工作过程比喻为从远处的水塔(服务器上的数据库)中将水(数据)取到自己家(客户机)中的过程。那么,Connection对象的作用就好比是铺设的自来水管道。
Connection对象的作用就是建立客户机和服务器之间的数据通道。
2.Recordset对象
Recordset对象的作用是在客户机的内存中开辟的一块区域,这块区域存储的就是从数据库中按照要求提取出来的数据。
这就好比是在家庭中用来存储水的容器。
数据库包含数据表(Table),表中包含一条一条的记录(Record),每条记录又包含若干字段(Field)。
在ADODB内存中,也设计了和数据库的存储结构一样的内存组织结构,其对应关系如图6-3所示。
提示:可以理解Recordset对象就是内存中的一张表,这张表的数据是从某个数据库的数据表中提取出来的。
图6-3 数据库逻辑结构和ADODB内存结构的关系
3.Command对象
Command对象是ADODB中用来执行SQL语句或者存储过程的对象。由于Recordset对象的功能已经足够强大,所以实际编程中Command对象用得很少,因为Recordset对象执行SQL语句后的结果是可以只有移动的结果集,而Command对象执行SQL语句的结果集是只读、逐行向下读取的结果集。
提示:很多情况下,很多程序仅仅使用Connection对象和Recordset对象就可以完成绝大部分数据的操作,Command对象使用较少。
6.1.4 一个典型的ADO编程的实例
下面我们以一个在Visual Basic中使用ADODB来编程访问数据库的实例予以说明,其代码如下。
'定义一个名为conn的connection对象,好比是买了自来水管道
Dim conn As New ADODB.Connection
'定义一个名为rs的Recordset对象,好比是客户机上准备存水的容器
Dim rs As New ADODB.Recordset
'定义字符串类型的连接串
Dim connstr As String
'单击实例化Recordset对象按钮后的执行代码
Private Sub CmdExecute_Click()
connstr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=db_student;Data Source = mynetserver"
conn.ConnectionString = connstr
'打开服务器上的水闸
conn.Open connstr
'将提取出来的数据放在客户机的内存中
rs.CursorLocation = adUseClient
'打开水龙头
rs.Open "T_STUDENT", conn, adOpenKeyset, adLockPessimistic
'中间的处理过程
'......
'关闭水龙头
rs.Close
'关闭服务器的水闸
conn.Close
'撤销容器,释放系统资源
Set rs = Nothing
'撤销管道,释放系统资源
Set conn = Nothing
MsgBox "成功完成Recordset对象的操作流程", , "成功提示"
End Sub
'单击退出按钮后的执行代码
Private Sub CmdExit_Click()
Unload Me
End Sub