当前位置:首页 > ADO对象模型编程
ADO对象模型
ADO,即ActiveX数据对象,实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口,可以使用任何一种ODBC数据源,即不只适合于SQL Server,Oracle,Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。
1.1 什么是ADO
ADO是为Microsoft最新最强大的数据访问范例OLE DB而设计的,是基于OLE DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法,是一个便于使用的应用程序层接口。ADO是独立于开发工具和开发语言的简单而且容易使用的数据接口。
ADO对象可以在所有支持COM和OLE的平台上使用,如VB,VC++,VBScript和Java等等。 OLE DB是一种底层数据访问界面接口,它是一套部件对象模型(COM)接口,用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB接口支持大量可应用于数据源的DBMS功能,提供了对任何数据库的高效的访问,包括关系数据库和非关系数据库、电子邮件和文件系统,以及文本文件和图形等,使数据源能够共享其数据。
ADO使用了与DAO相似的约定和特性,但ADO当前并不支持DAO的所有功能。 ADO具有非常简单的对象模型,如图1.1所示,包括以下7个对象:
图1.1 ADO数据模型
Connection,Command,Parameter,Recordset,Field,Property,Error
此外,还包含以下4个集合:
Fields,Properties,Parameters,Errors
ADO的核心是Connection,Recordset和Command对象。
1
1.1.1 Connection对象
ADO Connection 对象用于创建一个到达某个数据源的开放连接。通过此连接,您可以对一个数据库进行访问和操作。
如果需要多次访问某个数据库,应当使用 Connection 对象来建立一个连接。也可以经由一个 Command 或 Recordset 对象传递一个连接字符串来创建某个连接。不过,此类连接仅仅适合一次具体的简单的查询。
ProgID:
set objConnection=Server.CreateObject(\
1.1.1 Connection对象的属性
属性 Attributes CommandTimeout ConnectionString ConnectionTimeout CursorLocation DefaultDatabase IsolationLevel Mode Provider State Version
2
描述 设置或返回 Connection 对象的属性。 指示在终止尝试和产生错误之前执行命令期间需等待的时间。 设置或返回用于建立连接数据源的细节信息。 指示在终止尝试和产生错误前建立连接期间所等待的时间。 设置或返回游标服务的位置。 指示 Connection 对象的默认数据库。 指示 Connection 对象的隔离级别。 设置或返回 provider 的访问权限。 设置或返回 Connection 对象提供者的名称。 返回一个描述连接是打开还是关闭的值。 返回 ADO 的版本号。 (1) Attributes属性
设置或返回 Long 值。Attributes 属性为读/写,并且其值可以是一个或多个 XactAttributeEnum 值的和。默认值为零 (0)。
语法:object.Attributes
XactAttributeEnum枚举类型: 常量 adXactAbortRetaining adXactCommitRetaining 值 262144 131072 描述 当调用 RollbackTrans,自动启动一个新事务。 当调用 CommitTrans,自动启动新事务。 (2) CommandTimeout属性
指示执行命令期间在终止尝试和产生错误之前需等待的时间。 语法:object.CommandTimeout
设置和返回值:设置或返回 Long 值,该值指示等待命令执行的秒数。默认值为 30。 说明:
用 Connection 对象或 Command 对象的 CommandTimeout 属性来允许因网络拥挤或服务器负载过重产生的延迟而取消 Execute 方法调用。如果在 CommandTimeout 属性设置的时间间隔内未执行完命令,将产生错误,并且 ADO 取消该命令。如果将属性设置为零,ADO 将一直等待到命令执行完毕。请确保正在为其编写代码的提供者和数据源支持 CommandTimeout 功能。
Connection 对象的 CommandTimeout 设置对同一 Connection 中 Command 对象上的 CommandTimeout 设置没有影响,即 Command 对象的 CommandTimeout 属性不继承 Connection 对象的 CommandTimeout 值。
在 Connection 对象上,打开 Connection 后,CommandTimeout 属性将保持为读/写。 (3) ConnectionString属性
ConnectionString 属性可设置或返回用于建立到数据源的连接的信息。 注释:不能同时使用 Provider 和 File Name 参数。
语法:objconn.ConnectionString=\ConnectionString 属性有 5 个参数:
参数 Provider File Name 用于连接的提供者的名称。 提供者特有的文件(例如,持久保留的数据源对象)的名称,这些文件中包含预置的连接信息。 Remote Provider Remote Server url 当打开客户端连接时使用的提供者的名称。(仅限于远程数据服务。) 当打开客户端连接时使用的服务器的路径名称。(仅限于远程数据服务。) 标识资源(比如文件或目录)的绝对 URL。 描述
(4) ConnectionTimeout属性
设置或返回 Long 值,ConnectionTimeout 属性可设置或返回在终止尝试和产生错误之前打开连接需要等待的秒数。默认是 15 秒。
3
语法:objconn.ConnectionTimeout 说明:
如果由于网络拥挤或服务器负载过重引起的延迟而有必要取消连接尝试,请使用 Connection 对象的 ConnectionTimeout 属性。如果在 ConnectionTimeout 属性设置的时间内未打开连接,将产生错误,并且 ADO 取消该尝试。如果将该属性设置为0,ADO 将一直等待到连接打开。请确保正在为其编写代码的提供者支持 ConnectionTimeout 功能。
ConnectionTimeout 属性在连接关闭时为读/写,在连接打开时为只读。 (5) CursorLocation属性
CursorLocation 属性可设置或返回一个 long 值,该值指示游标服务的位置。可被设置为 CursorLocationEnum 值之一。默认值是 AdUseServer。
游标用于:
? 控制记录定位
? 控制其他用户对数据库所作的更改的可视性 ? 控制数据可更新性指示游标服务的位置。 CursorLocationEnum 枚举类型: 常量 adUseNone 值 描述 1 不使用游标服务。(此常量已作废并且只是为了向后兼容才出现。) adUseServer 2 默认值。使用数据提供者或驱动程序提供的游标。这些游标有时很灵活,可以额外感知其他人对数据源所做的更改。但是,Microsoft Cursor Service for OLE DB 的某些功能(例如断开 Recordset 对象)不能用服务器端游标模拟,这些功能在此设置中将不可用。 adUseClient 3 使用本地游标库提供的客户端的游标。本地游标服务通常允许执行驱动程序提供的游标所不允许的许多功能,因此使用此设置可以充分利用即将启用的功能。为进行向后兼容,亦支持同义字 adUseClientBatch。 说明:
此属性允许在可以访问提供者的多个游标库之间选择。通常情况下,可以选择客户端游标库中的游标或者选择位于服务器上的游标。
只有在设置了属性后,此属性设置才会影响所建立的连接。更改 CursorLocation 属性不会影响现有的连接。
注释:Recordset 对象将从与它们相关联的连接上自动继承此设置。
注释:此属性在 Connection 或已关闭的 Recordset 上为读/写,在打开的 Recordset 上为只读。 语法: objConnection.CursorLocation
objRecordset.CursorLocation
(6) DefaultDatabase属性
指示 Connection 对象的默认数据库。
设置和返回值:设置或返回 String 值,该值是特定 Connection 对象上的默认数据库的名称。 说明:
用 DefaultDatabase 属性设置或返回特定 Connection 对象上的默认数据库的名称。
如果有默认数据库,SQL 字符串将使用无限制的语法访问该数据库中的对象。若要访问未在 DefaultDatabase 属性中指定的数据库中的对象,对象名称必须与所需数据库的名称相匹配。连接时,提供者将把默认数据库信息写入 DefaultDatabase 属性。某些提供者对每个连接只允许一个数据库,在此情况下无法更改 DefaultDatabase 属性。
某些数据源和提供者可能不支持此项功能,并可能返回错误或空字符串。
4
共分享92篇相关文档