事件参数

目录

每个事件处理程序都有一个控制它的状态参数。大部分 Complete 事件都有错误参数用于报告引起事件发生的操作是否成功。另外还有一个对象参数,用于标识操作所针对的 ADO 对象。

参数同时被传递到 Will 事件以便用于挂起操作。这样您就有机会检查参数并确定操作是否应该完成。

某些事件处理程序有原因参数,该参数可以提供有关事件发生原因的详细信息。

状态参数

当事件处理程序例程被调用时,状态参数将被设置为下列信息值之一。

值 说明
adStatusOK 引发事件的操作已成功发生。
adStatusErrorsOccurred 引发事件的操作未成功发生,或 Will 事件取消了操作。有关细节,请单击错误参数。
adStatusCantDeny Will 事件无法请求取消即将开始的操作。

在事件处理程序例程返回之前,应当保持状态参数不变,或将其设置为下列请求值之一。

值 说明
adStatusUnwantedEvent 请求该事件处理程序不接收以后的通知。
adStatusCancel 请求取消即将开始的操作。

由事件类型所决定,当事件处理程序被调用时,状态参数可以取下列值之一。

事件类型 值
Will adStatusOK, adStatusCantDeny
Complete adStatusOK, adStatusErrorsOccurred

取决于事件类型,在事件处理程序返回时,状态参数可以取下列值之一。

事件类型 值
Will adStatusOK, adStatusCancel, adStatusUnwantedEvent
Complete adStatusOK, adStatusUnwantedEvent

错误参数

错误参数是对 ADO Error 对象的引用。状态参数为 adStatusErrorsOccurred 时,该对象包含操作失败的详细信息。

对象参数

对象参数是对所操作的 ADO 对象的引用。例如,可以同时打开几个 Connection 对象,但一次只能打开一个 Disconnect 事件处理程序。如果所有连接关闭,将对象参数设置为关闭的 Connection 对象,即可调用 Disconnect 事件处理程序。

原因参数

原因参数(adReason)提供有关事件发生原因的附加信息。带有 adReason 参数的方法可以被多次调用 — 甚至被相同的操作调用,但每次调用都有不同原因。

例如,WillChangeRecord 事件处理程序被某些操作调用,这些操作将进行或撤消记录的插入、删除或修改。adReason 参数被作为只处理特殊事件的筛选器来使用。

必须在 adStatus 参数中返回 adStatusUnwantedEvent,要求不带 adReason 参数的事件处理程序停止接收事件通知。但是,带有 adReason 参数的事件处理程序可能会接收几个通知,每个通知有不同原因。所以,对每个不同原因产生的通知,必须返回 adStatusUnwantedEvent。

例如,假设 WillChangeRecord 事件处理程序是用 Microsoft® Visual Basic® 编写的。如果您以后不想接收任何进一步的通知,只需编写如下代码:

Set adStatus = adStatusUnwantedEvent

但是,如果要处理其行将被删除的事件,但取消所有其他原因所带来的通知时,请编写如下程序:

if (adReason = adRsnDelete)
'处理此原因引起的事件。
...
else
'停止接收任何其他原因引起的事件。
Set adStatus = adStatusUnwantedEvent
... 
www.51windows.Net