明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ADO 事件模型

[摘要]“ADO 事件模型”支持某些同步或異步的 ADO 操作,這些操作在其開始之前或完 成之后能夠引發(fā)事件!笆录睂(shí)際上是對(duì)事件處理程序例程的調(diào)用。 操作開始前調(diào)用的事件處理程序用于檢查或修改操作參數(shù),此后可刪除操作或使 其完成。由于 ADO 2.0 支持異步操作,所以操作完成后調(diào)用的事件處理程序特 ...

“ADO 事件模型”支持某些同步或異步的 ADO 操作,這些操作在其開始之前或完
成之后能夠引發(fā)事件。“事件”實(shí)際上是對(duì)事件處理程序例程的調(diào)用。
操作開始前調(diào)用的事件處理程序用于檢查或修改操作參數(shù),此后可刪除操作或使
其完成。由于 ADO 2.0 支持異步操作,所以操作完成后調(diào)用的事件處理程序特
別重要。例如,啟動(dòng)異步
Recordset.Open 操作的應(yīng)用程序在操作完成時(shí),通過執(zhí)行完畢事件來(lái)獲得通知。
有兩類事件:
ConnectionEvents — 當(dāng)連接的事務(wù)開始、提交或回卷時(shí),當(dāng) Command 執(zhí)行時(shí),以及 Connection
開始或結(jié)束時(shí)所引發(fā)的事件。
RecordsetEvents — 當(dāng)定位 Recordset 對(duì)象行,更改 Recordset 行中的字段,更改 Recordset 中
的行,或在記錄集進(jìn)行任何更改時(shí)所引發(fā)的事件。


ADO 事件總結(jié)

ADO 2.0 支持事件,事件是對(duì)某些操作將要或已經(jīng)發(fā)生的通知。
有兩類事件:ConnectionEvent 和 RecordsetEvent。Connection 對(duì)象產(chǎn)生
ConnectionEvent 事件,而 Recordset 對(duì)象則產(chǎn)生 RecordsetEvent 事件。
事件由事件處理程序例程處理,該例程在某個(gè)操作開始之前或結(jié)束之后被調(diào)用。
某些事件是成對(duì)出現(xiàn)的。開始操作前調(diào)用的事件名格式為 WillEvent(Will 事件)
,而操作結(jié)束后調(diào)用的事件名格式為 EventComplete(Complete 事件)。
其余的不成對(duì)事件只在操作結(jié)束后發(fā)生。(其名稱沒有任何固定模式。)
事件處理程序由狀態(tài)參數(shù)控制。附加信息由錯(cuò)誤和對(duì)象參數(shù)提供。
可以請(qǐng)求事件處理程序不接受第一次通知以后的任何通知。例如,可以選擇只接收
Will 事件或 Complete 事件。
在某種編程語(yǔ)言中,來(lái)自多個(gè) ADO 對(duì)象的事件可以由一個(gè)事件處理程序處理。一個(gè)
事件也可以用多個(gè)事件處理程序處理,但不太常見。



ADO 事件


ADO 2.0 支持事件。事件是由某些操作在開始之前或結(jié)束之后發(fā)出的通知。事件實(shí)際
上是對(duì)應(yīng)用程序中定義的事件處理程序例程的調(diào)用。請(qǐng)參閱 不同語(yǔ)言的 ADO 事件實(shí)例。
事件分成兩類。ConnectionEvent 類從屬于 Connection 對(duì)象的操作,而 RecordsetEvent
類則從屬于 Recordset 對(duì)象的操作。 ConnectionEvents — 在連接的事務(wù)開始、提交
或回卷時(shí),或在 Command 被執(zhí)行、連接開始或結(jié)束時(shí),事件即被引發(fā)。
RecordsetEvents — 在 Recordset 對(duì)象行中定位、更改 Recordset 行中的字段、更改
Recordset 的行、或是在 Recordset 作任何修改時(shí),事件即被引發(fā)。


ADO 事件處理程序概述

ConnectionEvent 說(shuō)明
BeginTransComplete、
CommitTransComplete、
RollbackTransComplete 事務(wù)管理 — 關(guān)于連接上的當(dāng)前事務(wù)已經(jīng)開始、已經(jīng)提交、或者已
經(jīng)回卷的通知。
WillConnect、ConnectComplete、Disconnect 連接管理 — 關(guān)于當(dāng)前連接即將開始、已經(jīng)
開始、或者已經(jīng)結(jié)束的通知。
WillExecute、ExecuteComplete 命令執(zhí)行管理 — 關(guān)于連接的當(dāng)前命令的執(zhí)行即將開始、
或者已經(jīng)結(jié)束的通知。
InfoMessage Informational — 關(guān)于當(dāng)前操作有附加信息的通知。

RecordsetEvent 說(shuō)明
FetchProgress、FetchComplete 檢索狀態(tài) — 關(guān)于數(shù)據(jù)檢索操作進(jìn)度、或者檢索操作已經(jīng)
結(jié)束的通知。
WillChangeField、FieldChangeComplete 字段更改管理 — 關(guān)于當(dāng)前字段值即將更改、或
者已經(jīng)更改的通知。
WillMove、MoveComplete、EndOfRecordset 定位管理 — 關(guān)于當(dāng)前行在 Recordset 中的位
置即將更改、已經(jīng)更改、或者已經(jīng)到達(dá) Recordset 結(jié)尾的通知。
WillChangeRecord、RecordChangeComplete 行更改管理 — 關(guān)于 Recordset 當(dāng)前行的某
些地方即將更改、或者已經(jīng)更改的通知。
WillChangeRecordset、RecordsetChangeComplete Recordset 更改管理 — 關(guān)于當(dāng)前 Recordset
的某些地方即將更改、或者已經(jīng)更改的通知。



事件類型


Will 事件

操作開始之前調(diào)用的事件處理程序使您有機(jī)會(huì)檢查或修改操作參數(shù),然后取消操作或允許完成該操
作。這些事件處理程序例程通常具有形如 WillEvent(Will 事件)的名稱。

Complete 事件

操作完成之后調(diào)用的事件處理程序?qū)⑾驊?yīng)用程序發(fā)出操作已經(jīng)結(jié)束的通知。當(dāng)掛起的操作被 Will
事件處理程序取消時(shí),該事件處理程序也會(huì)收到通知。這些事件處理程序例程通常具有如象
EventComplete(Complete 事件)的名稱。

Will 和 Complete 事件一般成對(duì)使用。

其他事件

其他事件處理程序(事件名不使用 WillEvent 或 EventComplete 格式)僅在操作完成后被調(diào)用。



事件參數(shù)


每個(gè)事件處理程序都有一個(gè)控制它的狀態(tài)參數(shù)。大部分 Complete 事件都有錯(cuò)誤參數(shù),用于報(bào)告引
起事件發(fā)生的操作是否成功。另外還有一個(gè)對(duì)象參數(shù),用于標(biāo)識(shí)操作所執(zhí)行的 ADO 對(duì)象。

Will 事件也傳遞用于掛起操作的參數(shù)。這樣您就有機(jī)會(huì)檢查參數(shù)并確定操作是否應(yīng)該完成。

狀態(tài)參數(shù)

當(dāng)事件處理程序例程被調(diào)用時(shí),狀態(tài)參數(shù)將被設(shè)置為下列信息值之一。 (出處:熱點(diǎn)網(wǎng)絡(luò))


標(biāo)簽:ADO 事件模型