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操作過程中一個未預料到的事件被激活->