top
Loading...
淺析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 事件也傳遞用于掛起操作的參數。這樣您就有機會檢查參數并確定操作是否應該完成。

狀態參數

當事件處理程序例程被調用時,狀態參數將被設置為下列信息值之一。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗