最新的Web開發教程
 

ADO WillExecute和ExcuteComplete在活動


<完整的連接對象參考

事件是可以發生的特定操作後會自動調用的子程序。

  • WillExecute事件可以只是objcomm.Execute,objconn.Execute,或objrs.Open呼叫前被解僱。
  • ExecuteComplete事件可以到objcomm.Execute,objconn.Execute,objrs.Open,objrs.Requery通話之後被解僱,或objrs.NextRecordset完成。

句法

WillExecute src,cursortyp,locktyp,options,
status,objcomm,objrs,objconn

ExecuteComplete recaffected,objerror,status,
objcomm,objrs,objconn

參數 描述
src 包含一個SQL命令或存儲過程的名稱的字符串
cursortyp 指定要使用光標的類型。 其中的CursorTypeEnum
locktyp 指定要使用的鎖定類型。 其中的LockTypeEnum
options 一個或多個的CommandTypeEnum之中ExecuteOptionEnum的
recaffected 的受執行記錄數
objerror 包含發生的錯誤的Error對象。

Note:該EventStatusEnum值必須設置為adStatusErrorsOccurred,以創建Error對象。

status 一個EventStatusEnum
objcomm 對於WillExecute :設置為被執行,或者沒有Command對象

對於ExecuteComplete :被執行的命令對象

objrs 對於WillExecute :設置起因於命令或沒有執行的Recordset對象

對於ExecuteComplete :所述的記錄對象,它是執行命令的結果

objconn 與所述命令的執行相關聯的連接對象

CursorTypeEnum值

指定在記錄對象使用光標的類型。

不變 描述
adOpenUnspecified-1 不指定游標類型。
adOpenForwardOnly0 默認。 使用只進游標。 相同的靜態游標,但您只能通過記錄向前滾動。 當你需要通過一個記錄集僅做一個通這樣可以提高性能。
adOpenKeyset1 使用鍵集游標。 就像一個動態游標,但你不能看到其他用戶添加的記錄,儘管其他用戶刪除的記錄從您的Recordset不可訪問。 其他用戶的數據更改依然可見。
adOpenDynamic2 使用動態光標。 添加,更改和其他用戶刪除是可見的,並通過記錄所有類型的運動被允許,除了書籤,如果提供者不支持他們。
adOpenStatic3 使用靜態游標。 一組可以用來查找數據或生成報表的記錄的靜態副本。 添加,更改或由其他用戶刪除是不可見的。

LockTypeEnum值

不變 描述
adLockUnspecified-1 不指定類型的鎖。 用於克隆,該克隆與所述相同的鎖類型與原始創建的。
adLockReadOnly1 指示只讀記錄。 你不能改變的數據。
adLockPessimistic2 表示悲觀鎖定,通過記錄記錄。 該供應商做什麼是必要的,以確保記錄編輯成功,通常是通過在編輯後立即將數據源鎖定記錄。
adLockOptimistic3 表示樂觀鎖定,通過記錄記錄。 提供者使用開放式鎖定,鎖定的記錄,只有當你調用Update方法。
adLockBatchOptimistic4 表示樂觀批更新。 需要批更新模式。

CommandTypeEnum之中價值觀

不變 描述
adCmdUnspecified-1 不指定命令類型參數。
adCmdText1 CommandText作為一個命令的文本定義或存儲過程調用。
adCmdTable2 CommandText作為其列全部由內部生成的SQL查詢返回的表名。
adCmdStoredProc4 CommandText作為存儲過程的名稱。
adCmdUnknown8 表示命令的在CommandText屬性的類型是未知的。
adCmdFile256 CommandText作為一個永久存儲的Recordset的文件名。 它僅適用Recordset.Open或重新查詢。
adCmdTableDirect512 CommandText作為其列全部返回的表名。 它僅適用Recordset.Open或重新查詢。 要使用Seek方法,那麼Recordset必須以adCmdTableDirect打開。 這個值不能與ExecuteOptionEnum的價值adAsyncExecute結合。

ExecuteOptionEnum的價值觀

不變 描述
adOptionUnspecified-1 表示該命令是不確定的。
adAsyncExecute16 指示命令應該異步執行。 這個值不能與CommandTypeEnum之中值adCmdTableDirect結合。
adAsyncFetch32 指示在CacheSize屬性中指定的初始量後的剩餘的行是否應該異步獲取。
adAsyncFetchNonBlocking64 表明主線程不會阻塞在檢索。 如果請求的行尚未提取,當前行自動移動到文件的末尾。 如果從包含永久存儲的Recordset的Stream打開Recordset,那麼adAsyncFetchNonBlocking將不會產生影響; 操作將是同步的和阻塞。 adAsynchFetchNonBlocking將當adCmdTableDirect選項用於打開記錄沒有影響。
adExecuteNoRecords128 指示該命令的文本是一個命令或者不返回行存儲過程(for example, a command that only inserts data) 。 如果任何行被檢索,它們將被放棄,並沒有回來。 adExecuteNoRecords只能作為可選參數到命令或連接Execute方法進行傳遞。
adExecuteStream256 指示命令執行的結果應作為流的形式返回。 adExecuteStream只能作為可選參數的命令Execute方法進行傳遞。
adExecuteRecord512 表示在CommandText是一個命令或存儲過程返回單行應該返回作為記錄對象。

EventStatusEnum值

不變 描述
adStatusOK1 引發該事件的操作成功
adStatusErrorsOccurred2 引發該事件的操作失敗
adStatusCantDeny3 不能取消掛起操作
adStatusCancel4 取消引發該事件的操作
adStatusUnwantedEvent5 防止後續的通知之前的事件方法執行結束

<完整的連接對象參考