WEB开发网
开发学院WEB开发综合 ADO三大对象的属性、方法、事件及常数(一) 阅读

ADO三大对象的属性、方法、事件及常数(一)

 2006-02-27 11:44:55 来源:WEB开发网   
核心提示:Connection对象属性属性名称数据类型和用途Attributes可读写Long类型,通过两个常数之和指定是否使用保留事务(retainningtransactions),ADO三大对象的属性、方法、事件及常数(一),常数adXactCommitRetaining表示调用CommitTrans方法时启动一个新事务;
Connection对象

属性

属性名称数据类型和用途
Attributes可读写Long类型,通过两个常数之和指定是否使用保留事务(retainningtransactions)。常数adXactCommitRetaining表示调用CommitTrans方法时启动一个新事务;常数adXactAbortRetaning表示调用RollbackTrans方法时启动一个新事务。默认值为0,表示不使用保留事务。
CommandTimeout可读写Long类型,指定中止某个相关Command对象的Execute调用之前必须等待的时间。默认值为30秒。
ConnectionString可读写String类型,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息
ConnectionTimeout可读写Long类型,指定中止一个失败的Connection.Open方法调用之前必须等待的时间,默认值为15秒。
CursorLocation可读写Long类型,确定是使用客户端(adUseClient)游标引擎,还是使用服务器端(adUseServer)游标引擎。默认值是adUseServer。
DefaultDatabase可读写String类型,如果ConnectString中未指定数据库名称,就使用这里所指定的名称,对SQLServer而言,其值通常是pubs
IsolationLevel可读写Long类型,指定和其他并发事务交互时的行为或事务。见IsolationLevel常数
ModeLong类型,指定对Connection的读写权限。见Mode常数
PRovider可读写String类型,如果ConnectionString中未指定OLEDB数据或服务提供者的名称,就使用这时指定的名称。默认值是MSDASQL(MicrosoftOLEDBProviderforODBC)。
State可读写Long类型,指定连接是处于打开状态,还是处于关闭状态或中间状态。见State常数
Version只读String类型,返回ADO版本号。

注意:上面所列出的大多数可读写的属性,只有当连接处于关闭状态时才是可写的。

只有当用户为Connection对象用BeginTrans...CommitTrans...RollbackTrans方法定义了不遗余力,事务隔离程度的指定才真正有效。如果有多个数据库用户同时执行事务,那么应用程序中必须指定如何响应运行中的其他事务。

方法

方法用途
BeginTrans初始化一个事务;其后必须有CommitTrans和/或RollbackTrans相呼应
Close关闭连接
CommitTrans提交一个事务,以完成对数据源的永久改变(要求使用之前必须调用了BeginTrans方法)
Execute人SELECTSQL语句返回一个forward-onlyRecordset对象,也用来执行那些不返回Recordset语句,如INSERT、UPDATE、DELETE查询或DDL语句
Open用连接字符串来打开一个连接
OpenSchema返回一个Recordset对象以提供数据源的结构信息(metadata)
RollbackTrans取消一个事务,恢复对数据源做的临时性改变(要求使用之前必须调用了BeginTrans方法)

注:只有Execute、Open和OpenSchema三个方法才能接受变元参数。Execute的语法为:
cnnName.ExecutestrCommand,[lngRowsAffected[,lngOptions]]
strCommand的值可以是SQL语句、表名、存储过程名,也可以是数据提供者所能接受的任意字符串。为了提高性能,最好为lngOptions参数指定合适的值(详见lngOptions参数用到的常数),以使提供者解释语句时不用再去判定其类型。可选参数lngRowsAffected将返回INSERT、UPDATE或DELETE查询执行以后所影响的数目。这些查询会返回一个关闭的Recordset对象。一个SELECT查询将返回lngRowsAffected值为0并且返回带有一行或多行内容的打开的forward-onlyRecordset。

事件

事件名称触发时机
BeginTransCompleteBeginTrans方法执行以后。
PrivateSubcnnName_BeginTransComplet(ByValTransactionLevelAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
CommitTransCompleteCommitTrans方法执行以后
PrivateSubConnection1_CommitTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ConnectComplete成功建立到数据源的Connection之后
PrivateSubConnection1_ConnectComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
DisconnectConnection关闭之后
PrivateSubConnection1_Disconnect(adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ExecuteComplete完成Connection.Execute或Command.Execute之时
PrivateSubConnection1_ExecuteComplete(ByValRecordsAffectedAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)
InfoMessage一个Error对象被添加到ADODB.Connectio.Error集合之时
PrivateSubConnection1_InfoMessage(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
RollbackTransCompleteRollbackTrans方法执行之后
PrivateSubConnection1_RollbackTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillConnect即将调用Connection.Open方法之时
PrivateSubConnection1_WillConnect(ConnectionStringAsString,UserIDAsString,PassWordAsString,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillExecute即将调用Connection.Execute或Command.Execute方法之时
PrivateSubConnection1_WillExecute(SourceAsString,CursorTypeAsADODB.CursorTypeEnum,LockTypeAsADODB.LockTypeEnum,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)

注:其中的adStatus参数所用到的常数的名称和含义详见adStatus所用的常数

常数

IsolationLevel常数

常数含义
adXactCursorStability只允许读其他事务已提交的改变(默认值)
adXactBrowse允许读其他事务未提交的改变
adXactChaos本事务不会覆盖其他位于更高隔离程度的事务所做的改变
adXactIsolated所有事务相互独立
adXactReadCommitted等同于adXactCursorStability
adXactReadUncommitted等同于adXactBrowse
adXactRepeatableRead禁止读其他事务的改变
adXactSerializable等同于adXactIsolated
adXactUnspecified不能确定提供者的事务隔离程度

Mode常数

常数含义
adModeUnknown未指定数据源的连接许可权(默认值)
adModeRead连接是只读的
adModeReadWrite连接是可读写的
adModeShareDenyNone不拒绝其他用户的读写访问(JetOLEDBProvider的默认值)
adModeShareDenyRead拒绝其他用户打开到数据源的读连接
adModeShareDenyWrite拒绝其他用户打开到数据源的写连接
adModeShareExclusive以独占方式打开数据源
adModeWrite连接是只写的

State常数

常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)

Execute方法中lngOption参数用到的常数

Command类型常数含义
adCmdUnknownCommand类型未定(默认值),由数据提供者去判别Command语法
adCmdFileCommand是和对象类型相应的文件名称
adCmdStoredProcCommand是存储过程名称
adCmdTableCommand是能产生内部SELECT*FROMTableName查询的表名称
adCmdTableDirectCommand是能直接从表中获取行内容的表名称
adCmdTextCommand是一条SQL语句

ADODB事件处理子过程参数adStatus所用的常数

常数含义
adStatusCancel操作被用户取消
adStatusCnatDeny操作不能拒绝其他用户对数据源的访问
adStatusErrorsOccurred操作导致错误并已送到Errors集合中
adStatusOK操作成功
adStatusUnWantedEvent操作过程中一个未预料到的事件被激活->

Tags:ADO 三大 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接