ADO三大對象的屬性、方法、事件及常數(1)

來源:互聯網
上載者:User

 

Connection對象

屬性

屬性名稱 資料類型和用途
Attributes 可讀寫Long類型,通過兩個常數之和指定是否使用保留事務(retainning transactions)。常數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中未指定資料庫名稱,就使用這裡所指定的名稱,對SQL Server而言,其值通常是pubs
IsolationLevel 可讀寫Long類型,指定和其他並發事務互動時的行為或事務。見IsolationLevel常數
Mode Long類型,指定對Connection的讀寫權限。見Mode常數
Provider 可讀寫String類型,如果ConnectionString中未指定OLE DB資料或服務提供者的名稱,就使用這時指定的名稱。預設值是MSDASQL(Microsoft OLE DB Provider for ODBC)。
State 可讀寫Long類型,指定串連是處於開啟狀態,還是處於關閉狀態或中間狀態。見State常數
Version 唯讀String類型,返回ADO版本號碼。

注意:上面所列出的大多數可讀寫的屬性,只有當串連處於關閉狀態時才是可寫的。

只有當使用者為Connection對象用BeginTrans...CommitTrans...RollbackTrans方法定義了不遺餘力,事務隔離程度的指定才真正有效。如果有多個資料庫使用者同時執行事務,那麼應用程式中必須指定如何響應運行中的其他事務。

方法

方法 用途
BeginTrans 初始化一個事務;其後必須有CommitTrans和/或RollbackTrans相呼應
Close 關閉串連
CommitTrans 提交一個事務,以完成對資料來源的永久改變(要求使用之前必須調用了BeginTrans方法)
Execute 人SELECT SQL語句返回一個forward-only Recordset對象,也用來執行那些不返回Recordset語句,如INSERT、UPDATE、DELETE查詢或DDL語句
Open 用連接字串來開啟一個串連
OpenSchema 返回一個Recordset對象以提供資料來源的結構資訊(metadata)
RollbackTrans 取消一個事務,恢複對資料來源做的臨時性改變(要求使用之前必須調用了BeginTrans方法)

註:只有Execute、Open和OpenSchema三個方法才能接受變元參數。Execute的文法為:
cnnName.Execute strCommand,[lngRowsAffected[,lngOptions]]
strCommand的值可以是SQL語句、表名、預存程序名,也可以是資料提供者所能接受的任一字元串。為了提高效能,最好為lngOptions參數指定合適的值(詳見lngOptions參數用到的常數),以使提供者解釋語句時不用再去判定其類型。選擇性參數lngRowsAffected將返回INSERT、UPDATE或DELETE查詢執行以後所影響的數目。這些查詢會返回一個關閉的Recordset對象。一個SELECT查詢將返回lngRowsAffected值為0並且返回帶有一行或多行內容的開啟的forward-only Recordset。

事件

事件名稱 觸發時機
BeginTransComplete BeginTrans方法執行以後。
Private Sub cnnName_BeginTransComplet(ByVal TransactionLevel As Long,ByVal pError As ADODB.Error,adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
CommitTransComplete CommitTrans方法執行以後
Private Sub Connection1_CommitTransComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
ConnectComplete 成功建立到資料來源的Connection之後
Private Sub Connection1_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Disconnect Connection關閉之後
Private Sub Connection1_Disconnect(adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
ExecuteComplete 完成Connection.Execute或Command.Execute之時
Private Sub Connection1_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
InfoMessage 一個Error對象被添加到ADODB.Connectio.Error集合之時
Private Sub Connection1_InfoMessage(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
RollbackTransComplete RollbackTrans方法執行之後
Private Sub Connection1_RollbackTransComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
WillConnect 即將調用Connection.Open方法之時
Private Sub Connection1_WillConnect(ConnectionString As String, UserID As String, Password As String, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
WillExecute 即將調用Connection.Execute或Command.Execute方法之時
Private Sub Connection1_WillExecute(Source As String, CursorType As ADODB.CursorTypeEnum, LockType As ADODB.LockTypeEnum, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)

註:其中的adStatus參數所用到的常數的名稱和含義詳見adStatus所用的常數

常數

IsolationLevel常數

常數 含義
adXactCursorStability 只允許讀其他事務已提交的改變(預設值)
adXactBrowse 允許讀其他事務未提交的改變
adXactChaos 本事務不會覆蓋其他位於更高隔離程度的事務所做的改變
adXactIsolated 所有事務相互獨立
adXactReadCommitted 等同於adXactCursorStability
adXactReadUncommitted 等同於adXactBrowse
adXactRepeatableRead 禁止讀其他事務的改變
adXactSerializable 等同於adXactIsolated
adXactUnspecified 不能確定提供者的事務隔離程度

Mode常數

常數 含義
adModeUnknown 未指定資料來源的串連許可權(預設值)
adModeRead 串連是唯讀
adModeReadWrite 串連是可讀寫的
adModeShareDenyNone 不拒絕其他使用者的讀寫訪問(Jet OLE DB Provider的預設值)
adModeShareDenyRead 拒絕其他使用者開啟到資料來源的讀串連
adModeShareDenyWrite 拒絕其他使用者開啟到資料來源的寫串連
adModeShareExclusive 以獨佔方式開啟資料來源
adModeWrite 串連是唯寫的

State常數

常數 含義
adStateClosed Connection(或其他對象)是關閉的(預設值)
adStateConnecting 正在串連資料來源的狀態
adStateExecuting Connection或Command對象的Execute方法已被調用
adStateFetching 返回行(row)到Recordset對象
adStateOpen Connection(或其他對象)是開啟的(活動的)

Execute方法中lngOption參數用到的常數

Command類型常數 含義
adCmdUnknown Command類型未定(預設值),由資料提供者去判別Command文法
adCmdFile Command是和物件類型相應的檔案名稱
adCmdStoredProc Command是預存程序名稱
adCmdTable Command是能產生內部SELECT * FROM TableName查詢的表名稱
adCmdTableDirect Command是能直接從表中擷取行內容的表名稱
adCmdText Command是一條SQL語句

ADODB事件處理子過程參數adStatus所用的常數

常數 含義
adStatusCancel 操作被使用者取消
adStatusCnatDeny 操作不能拒絕其他使用者對資料來源的訪問
adStatusErrorsOccurred 操作導致錯誤並已送到Errors集合中
adStatusOK 操作成功
adStatusUnWantedEvent 操作過程中一個未預料到的事件被啟用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.