ADO连接对象
ADO连接对象(Connection)用于连接数据源,并处理一些命令和事务。在使用ADO访问数据库之前,必须先创建一个ADO连接对象,然后才能通过该对象打开到数据库的连接。
1.ADO连接对象操作
使用 ADO连接对象的集合、方法和属性可执行下列操作:
在打开到数据库的连接之前,需要使用ConnectionString、ConnectionTimeout 和Mode属性配置连接。
使用CursorLocation属性指定支持批更新的“客户端游标提供者”的位置。
使用 DefaultDatabase属性设置连接的默认数据库。
使用IsolationLevel属性设置在连接上打开的事务的隔离级别。
使用Provider属性指定OLE DB提供者。
使用Open方法建立到数据源的物理连接,使用 Close 方法中断连接。
使用Execute方法执行对连接的命令,并且可以使用CommandTimeout属性对执行的命令进行配置。
使用BeginTrans、CommitTrans和RollbackTrans方法以及Attributes属性管理打开的连接上的事务(如果提供者支持则包括嵌套的事务)。
使用Errors集合检查数据源返回的错误。
通过Version属性读取所使用的ADO执行版本。
使用OpenSchema方法获取数据库概要信息。
2.ADO连接对象属性
ADO连接对象的属性如下:
Attributes:属性为读/写,其值可以为以下值中的任意一个或多个:
AdXactCommitRetaining:执行保留的事务提交。
AdXactAbortRetaining :指向保留的事务终止。
CommandTimeout:该属性允许由于网络拥塞或服务器负载过重产生的延迟而取消 Execute 方法调用。指示在终止尝试和产生错误之前执行命令期间需等待的时间。
ConnectionString:该属性包含用来建立到数据源的连接的信息。通过传递包含一系列由分号分隔的 argument = value 语句的详细连接字符串可指定数据源,ADO支持以下7个argument语句:
Provider:指定连接所需的提供者名称。
Data Source:指定连接所需的数据源名称。
User ID:指定打开连接所需的用户名。
Password:指定打开连接所需的密码。
File Name:指定提供者描述文件名。
Remote Provider:指定打开客户端连接所需的提供者名称。
Remote Server:指定打开客户端连接所需的服务器名称。
ConnectionTimeout:如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,使用该属性,指示在终止尝试和产生错误前建立连接期间所等待的时间。
CursorLocation:该属性允许在可用于提供者的各种游标库中进行选择。或返回游标引擎的位置,可选值如下:
adUseClient:使用客户端游标引擎。
adUseServer:使用数据提供者游标引擎。
DefaultDatabase:设置或返回指定 Connection 对象上默认数据库的名称。
IsolationLevel:表示 Connection 对象的隔离级别。IsolationLevel 的属性为读/写。直到下次调用 BeginTrans 方法时,该设置才可以生效,可选值如下:
adXactUnspecified:使用不同于指定的级别,级别不确定。
adXactChaos:不能覆盖更高级别事务中未提交的更改。
adXactBrowse:可以浏览其他事务中未提交的更改。
adXactCursorStability:可以浏览其他事务中已提交的更改。
adXactRepeatableRead:重新查询可以获得新的记录集。
adXactIsolated:事务管理与其他事务分隔。
Mode:可设置或返回当前连接上提供者正在使用的访问权限。Mode 属性只能在关闭 Connection 对象时方可设置,可选值如下:
adModeUnknown:未知的权限。
adModeRead:只读权限。
adModeWrite:只写权限。
adModeReadWrite:读写权限。
adModeShareDenyRead:只读共享权限。
adModeShareDenyWrite:只写共享权限。
adModeShareExclusive:独占权限。
adModeShareDenyNone:无权限。
Provider:设置或返回连接提供者的名称。
State:定指定对象的当前状态。该属性是只读的,可选值如下:
adStateClosed:默认,指示对象是关闭的。
adStateOpen:指示对象是打开的。
Version:表示 ADO 版本号。
3.ADO连接对象方法
ADO连接对象的方法如下:
BeginTrans:开始一个新事务。
CommitTrans:保存所有更改并结束当前事务。它也可以启动新事务。
RollbackTrans:取消当前事务中所做的任何更改并结束事务。它也可以启动新事务。
Cancel:取消执行挂起的异步 Execute 或 Open 方法的调用。
Close:关闭打开的对象及任何相关对象。
Execute:执行指定的查询、SQL 语句、存储过程或特定提供者的文本等内容。
Open:打开到数据源的连接。
OpenSchema:从提供者获取数据库纲要信息。
下面对ADO连接对象的常用方法进行详细介绍。
(1)Open方法
语法:
HRESULT Open(_bstr_t ConnectionString,_bstr_t UserID,_bstr_t Password,long Options);
Open语法中的参数说明如表1所示。
表1 Open语法中的参数说明
|
参数
|
描述
|
|
ConnectionString
|
指定连接信息的字符串
|
|
UserID
|
指定建立连接所需的用户名
|
|
Password
|
指定建立连接所需的密码
|
|
Options
|
打开选项,分为:adConnectUnspecified(同步)和adAsyncConnect(异步)
|
(2)Execute方法
语法:
_RecordSetPtr Execute(_bstr_t CommandText,VARIANT *RecordsAffected,long Options);
参数说明:
CommandText:指定要执行的命令文本。
RecordsAffected:返回受影响的记录数。
Options:指定命令类型。
提示:如果Execute方法执行的SQL语句要求有记录集返回,例如执行Select查询语句。则Execute方法的返回值表示一个ADO记录集对象。
(3)Close方法
语法:
HRESULT Close();