ADO 事件模型
發(fā)表時間:2024-06-12 來源:明輝站整理相關軟件相關文章人氣:
[摘要]“ADO 事件模型”支持某些同步或異步的 ADO 操作,這些操作在其開始之前或完 成之后能夠引發(fā)事件!笆录睂嶋H上是對事件處理程序例程的調(diào)用。 操作開始前調(diào)用的事件處理程序用于檢查或修改操作參數(shù),此后可刪除操作或使 其完成。由于 ADO 2.0 支持異步操作,所以操作完成后調(diào)用的事件處理程序特 ...
“ADO 事件模型”支持某些同步或異步的 ADO 操作,這些操作在其開始之前或完
成之后能夠引發(fā)事件!笆录睂嶋H上是對事件處理程序例程的調(diào)用。
操作開始前調(diào)用的事件處理程序用于檢查或修改操作參數(shù),此后可刪除操作或使
其完成。由于 ADO 2.0 支持異步操作,所以操作完成后調(diào)用的事件處理程序特
別重要。例如,啟動異步
Recordset.Open 操作的應用程序在操作完成時,通過執(zhí)行完畢事件來獲得通知。
有兩類事件:
ConnectionEvents — 當連接的事務開始、提交或回卷時,當 Command 執(zhí)行時,以及 Connection
開始或結(jié)束時所引發(fā)的事件。
RecordsetEvents — 當定位 Recordset 對象行,更改 Recordset 行中的字段,更改 Recordset 中
的行,或在記錄集進行任何更改時所引發(fā)的事件。
ADO 事件總結(jié)
ADO 2.0 支持事件,事件是對某些操作將要或已經(jīng)發(fā)生的通知。
有兩類事件:ConnectionEvent 和 RecordsetEvent。Connection 對象產(chǎn)生
ConnectionEvent 事件,而 Recordset 對象則產(chǎn)生 RecordsetEvent 事件。
事件由事件處理程序例程處理,該例程在某個操作開始之前或結(jié)束之后被調(diào)用。
某些事件是成對出現(xiàn)的。開始操作前調(diào)用的事件名格式為 WillEvent(Will 事件)
,而操作結(jié)束后調(diào)用的事件名格式為 EventComplete(Complete 事件)。
其余的不成對事件只在操作結(jié)束后發(fā)生。(其名稱沒有任何固定模式。)
事件處理程序由狀態(tài)參數(shù)控制。附加信息由錯誤和對象參數(shù)提供。
可以請求事件處理程序不接受第一次通知以后的任何通知。例如,可以選擇只接收
Will 事件或 Complete 事件。
在某種編程語言中,來自多個 ADO 對象的事件可以由一個事件處理程序處理。一個
事件也可以用多個事件處理程序處理,但不太常見。
ADO 事件
ADO 2.0 支持事件。事件是由某些操作在開始之前或結(jié)束之后發(fā)出的通知。事件實際
上是對應用程序中定義的事件處理程序例程的調(diào)用。請參閱 不同語言的 ADO 事件實例。
事件分成兩類。ConnectionEvent 類從屬于 Connection 對象的操作,而 RecordsetEvent
類則從屬于 Recordset 對象的操作。 ConnectionEvents — 在連接的事務開始、提交
或回卷時,或在 Command 被執(zhí)行、連接開始或結(jié)束時,事件即被引發(fā)。
RecordsetEvents — 在 Recordset 對象行中定位、更改 Recordset 行中的字段、更改
Recordset 的行、或是在 Recordset 作任何修改時,事件即被引發(fā)。
ADO 事件處理程序概述
ConnectionEvent 說明
BeginTransComplete、
CommitTransComplete、
RollbackTransComplete 事務管理 — 關于連接上的當前事務已經(jīng)開始、已經(jīng)提交、或者已
經(jīng)回卷的通知。
WillConnect、ConnectComplete、Disconnect 連接管理 — 關于當前連接即將開始、已經(jīng)
開始、或者已經(jīng)結(jié)束的通知。
WillExecute、ExecuteComplete 命令執(zhí)行管理 — 關于連接的當前命令的執(zhí)行即將開始、
或者已經(jīng)結(jié)束的通知。
InfoMessage Informational — 關于當前操作有附加信息的通知。
RecordsetEvent 說明
FetchProgress、FetchComplete 檢索狀態(tài) — 關于數(shù)據(jù)檢索操作進度、或者檢索操作已經(jīng)
結(jié)束的通知。
WillChangeField、FieldChangeComplete 字段更改管理 — 關于當前字段值即將更改、或
者已經(jīng)更改的通知。
WillMove、MoveComplete、EndOfRecordset 定位管理 — 關于當前行在 Recordset 中的位
置即將更改、已經(jīng)更改、或者已經(jīng)到達 Recordset 結(jié)尾的通知。
WillChangeRecord、RecordChangeComplete 行更改管理 — 關于 Recordset 當前行的某
些地方即將更改、或者已經(jīng)更改的通知。
WillChangeRecordset、RecordsetChangeComplete Recordset 更改管理 — 關于當前 Recordset
的某些地方即將更改、或者已經(jīng)更改的通知。
事件類型
Will 事件
操作開始之前調(diào)用的事件處理程序使您有機會檢查或修改操作參數(shù),然后取消操作或允許完成該操
作。這些事件處理程序例程通常具有形如 WillEvent(Will 事件)的名稱。
Complete 事件
操作完成之后調(diào)用的事件處理程序?qū)⑾驊贸绦虬l(fā)出操作已經(jīng)結(jié)束的通知。當掛起的操作被 Will
事件處理程序取消時,該事件處理程序也會收到通知。這些事件處理程序例程通常具有如象
EventComplete(Complete 事件)的名稱。
Will 和 Complete 事件一般成對使用。
其他事件
其他事件處理程序(事件名不使用 WillEvent 或 EventComplete 格式)僅在操作完成后被調(diào)用。
事件參數(shù)
每個事件處理程序都有一個控制它的狀態(tài)參數(shù)。大部分 Complete 事件都有錯誤參數(shù),用于報告引
起事件發(fā)生的操作是否成功。另外還有一個對象參數(shù),用于標識操作所執(zhí)行的 ADO 對象。
Will 事件也傳遞用于掛起操作的參數(shù)。這樣您就有機會檢查參數(shù)并確定操作是否應該完成。
狀態(tài)參數(shù)
當事件處理程序例程被調(diào)用時,狀態(tài)參數(shù)將被設置為下列信息值之一。 (出處:熱點網(wǎng)絡)