|
2#
楼主 |
发表于 2004-7-15 17:42:00
|
只看该作者
ADO快速教程
ADO对象模型是由相对数量较少的对象组成.不象RDO对象模型,每个主要的ADO对象都能被个别的被创建.这就意味着,举例说吧,你不需要在创建有效的记录集对象前创建一个连接.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "Biblio"
rs.Open "select * from titles where title like '%h'", cn
ADO 2.0对象是Connection,Command,Parameter,Recordset,Field,Error和Property.ADO对象模型也包括四个类集:它们分别是一套相关的Error,Parameter,Property和Field对象.让我们来看看每个对象的主要特性.
Connection对象提供连接,该连接连接的程序中存有它正在访问的数据源.属性允许你定义:连接串,命令执行以及连接启动的间隔时间,数据提供者,(无论临时表位置是应该在客户端还是在服务器端),和对于数据的访问权限.方法有关于如下功能的:执行命令,打开和关闭一个连接和管理事务.
在许多地方你可以指定你想使用的提供者:通过Provider属性,在连接字符串中,或者甚至通过Open方法.选择你最喜欢的实现方式,但要保证你没有为同样的连接指定多个的提供者.缺省的提供者(当
你没有指定你自己的提供者的情况下)是MSDASQL,针对ODBC的Microsoft OLE DB提供者.
Command对象定义了一个SQL声明,一个存储过程,或任何其他的你可能想让提供者执行的关于数据的操作.Command的属性有:当前连接,最大允许执行时间和参数集.一个参数就是你将它作为参数传递给命令的值.在这些属性中用以区分一个参数的属性有:方向(输入,输出,或者两者都有),类型当然还有它们的值.
记录集对象也许是最典型的ADO对象,然而它是最复杂的当中的一个.它表示命令执行的结果,并且它大多是以数据库的记录集的形式给出.一个记录集是由以行和域的形式表示的信息组成.它不一定非要映射成关系型数据库的记录.实际上,如同我早些时候解释的那样,ADO是基于OLE DB并且能被用来可视化地访问任何数据源中的数据,这数据源包括非关系型的数据库.记录集提供了缓冲能力,它接受数据的变化,并且将这些变化以批处理的方式传给服务器.你可以浏览并对记录集的内容分类,如同列举和提取行.你也能通过如:删除,添加和刷新操作等任何方式修改数据.记录集存在跟连接的严格的关系,但是这不意味着你总是需要一个打开的连接来获得一个记录集.你也可以按如下方式进行:
Dim RS As New ADODB.Recordset
sql = "select * from authors"
RS.Open sql, "ubs"
既然Connection实际上是数据和命令传送的通道,所以该对象仍然被创建了,除了一个名字叫做Recordset.ActiveConnection的属性外,它是不可见的并工作在后台.
Field对象是一列同类的数据.它提供了一种这样的编程接口,即能让你可以对单个单元的值以及基本的特征如:类型和大小进行读和写.所有给定记录集的Field对象形成了一个Field集.如我将在后面向你说明的, Fields集隐藏着一个引人注目的特性,它将再次证明Recordset对象的灵活性.
最后是Property对象.每个对象都有属性.提供的使用了ADO的对象可能是各种各样的.但不存在这样一套属性即包含了所有可能的OLE DB提供者的静态的属性.因此,任何一个ADO对象都有静态和动态的属性.第一套属性集:包括Name,Type,Value和Attributes,都可以通过如下的语法来访问:
obj.PropertyName
最开始的三个属性都是自我说明性的.Attributes是一种数字式的描述符,它是以按位的跟提供者的能力有关的一些预定义的属性组合.(它类似于COM服务器的组件分类).
动态属性是跟潜在的提供者类型相应的.它们被归进Properties集合,并可以通过名字查询.
obj.Properties("propName")
The New Recordset Object
ADO 2.0包括一些新的功能(见图3).现在可以通过GetString方法把记录集扁平化变成一个字符串.
<BLOCKQUOTE>
Set Variant = recordset.GetString(
StringFormat,
NumRows,
<FONT face=Verdana>ColumnDelimiter, </FON |
|