淺析ADO 事件模型

來源:互聯網
上載者:User
ado

  “ADO 事件模型”支援某些同步或非同步 ADO 操作,這些操作在其開始之前或完成之後能夠引發事件。“事件”實際上是對事件處理常式常式的調用。

  操作開始前調用的事件處理常式用於檢查或修改巨集指令引數,此後可刪除操作或使其完成。由於 ADO 2.0 支援非同步作業,所以操作完成後調用的事件處理常式特別重要。例如,啟動非同步Recordset.Open 操作的應用程式在操作完成時,通過執行完畢事件來獲得通知。

  有兩類事件:

ConnectionEvents — 當串連的事務開始、提交或回卷時,當 Command 執行時,以及 Connection

  開始或結束時所引發的事件。

RecordsetEvents — 當定位 Recordset 對象行,更改 Recordset 行中的欄位,更改 Recordset 中的行,或在記錄集進行任何更改時所引發的事件。

  ADO 事件總結

  ADO 2.0 支援事件,事件是對某些操作將要或已經發生的通知。

  有兩類事件:ConnectionEvent 和 RecordsetEvent。Connection 對象產生ConnectionEvent 事件,而 Recordset 對象則產生 RecordsetEvent 事件。

  事件由事件處理常式常式處理,該常式在某個操作開始之前或結束之後被調用。

  某些事件是成對出現的。開始操作前調用的事件名格式為 WillEvent(Will 事件),而操作結束後調用的事件名格式為 EventComplete(Complete 事件)。

  其餘的不成對事件只在操作結束後發生。(其名稱沒有任何固定模式。)事件處理常式由狀態參數控制。附加資訊由錯誤和對象參數提供。

  可以請求事件處理常式不接受第一次通知以後的任何通知。例如,可以選擇只接收Will 事件或 Complete 事件。

  在某種程式設計語言中,來自多個 ADO 對象的事件可以由一個事件處理常式處理。一個事件也可以用多個事件處理常式處理,但不太常見。

  ADO 事件

  ADO 2.0 支援事件。事件是由某些操作在開始之前或結束之後發出的通知。事件實際上是對應用程式中定義的事件處理常式常式的調用。請參閱 不同語言的 ADO 事件執行個體。
事件分成兩類。ConnectionEvent 類從屬於 Connection 對象的操作,而 RecordsetEvent類則從屬於 Recordset 對象的操作。 ConnectionEvents — 在串連的事務開始、提交或回卷時,或在 Command 被執行、串連開始或結束時,事件即被引發。

  RecordsetEvents — 在 Recordset 對象行中定位、更改 Recordset 行中的欄位、更改Recordset 的行、或是在 Recordset 作任何修改時,事件即被引發。

  ADO 事件處理常式概述

  ConnectionEvent 說明

  BeginTransComplete、CommitTransComplete、RollbackTransComplete 交易管理 — 關於串連上的當前事務已經開始、已經提交、或者已經回卷的通知。

  WillConnect、ConnectComplete、Disconnect 串連管理 — 關於當前串連即將開始、已經開始、或者已經結束的通知。

  WillExecute、ExecuteComplete 命令執行管理 — 關於串連的當前命令的執行即將開始、或者已經結束的通知。

  InfoMessage Informational — 關於當前操作有附加資訊的通知。

  RecordsetEvent 說明

  FetchProgress、FetchComplete 檢索狀態 — 關於資料檢索操作進度、或者檢索操作已經結束的通知。

  WillChangeField、FieldChangeComplete 欄位更改管理 — 關於當前欄位值即將更改、或者已經更改的通知。

  WillMove、MoveComplete、EndOfRecordset 定位管理 — 關於當前行在 Recordset 中的位置即將更改、已經更改、或者已經到達 Recordset 結尾的通知。

  WillChangeRecord、RecordChangeComplete 行更改管理 — 關於 Recordset 當前行的某些地方即將更改、或者已經更改的通知。

  WillChangeRecordset、RecordsetChangeComplete Recordset 更改管理 — 關於當前 Recordset的某些地方即將更改、或者已經更改的通知。

  事件類型

  Will 事件

  操作開始之前調用的事件處理常式使您有機會檢查或修改巨集指令引數,然後取消操作或允許完成該操作。這些事件處理常式常式通常具有形如 WillEvent(Will 事件)的名稱。

  Complete 事件

  操作完成之後調用的事件處理常式將嚮應用程式發出操作已經結束的通知。當擱置動作被 Will事件處理常式取消時,該事件處理常式也會收到通知。這些事件處理常式常式通常具有如象EventComplete(Complete 事件)的名稱。

  Will 和 Complete 事件一般成對使用。

  其他事件

  其他事件處理常式(事件名不使用 WillEvent 或 EventComplete 格式)僅在操作完成後被調用。

  事件參數

  每個事件處理常式都有一個控制它的狀態參數。大部分 Complete 事件都有錯誤參數,用於報告引起事件發生的操作是否成功。另外還有一個對象參數,用於標識操作所執行的 ADO 對象。

  Will 事件也傳遞用於掛起操作的參數。這樣您就有機會檢查參數並確定操作是否應該完成。

  狀態參數

  當事件處理常式常式被調用時,狀態參數將被設定為下列資訊值之一。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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