WillChangeRecordset 和 RecordsetChangeComplete 事件 (ADO)

WillChangeRecordset 事件在挂起操作更改 Recordset 之前进行调用。 RecordsetChangeComplete 事件在 Recordset 已更改之后进行调用。

语法

  
WillChangeRecordset adReason, adStatus, pRecordset  
RecordsetChangeComplete adReason, pError, adStatus, pRecordset  

参数

adReason
一个 EventReasonEnum 值,用于指定此事件的原因。 其值可以是 adRsnRequery、adRsnResynch、adRsnClose、adRsnOpen。

adStatus
一个 EventStatusEnum 状态值。

调用 WillChangeRecordset 时,如果导致事件的操作成功,则此参数设置为 adStatusOK。 如果此事件无法请求取消挂起的操作,则设置为 adStatusCantDeny。

调用 RecordsetChangeComplete 时,如果导致事件的操作成功,则此参数设置为 adStatusOK;如果操作失败,则设置为 adStatusErrorsOccurred;如果与之前接受的 WillChangeRecordset 事件关联的操作已被取消,则设置为 adStatusCancel。

在返回 WillChangeRecordset 之前,将此参数设置为 adStatusCancel 以请求取消挂起的操作,或将此参数设置为 adStatusUnwantedEvent 以阻止后续通知。

在返回 WillChangeRecordset 或 RecordsetChangeComplete 之前,将此参数设置为 adStatusUnwantedEvent 以阻止后续通知。

pError
一个 Error 对象。 它描述了在 adStatus 的值为 adStatusErrorsOccurred 时发生的错误;否则不设置此参数。

pRecordset
一个 Recordset 对象。 发生此事件的 Recordset。

备注

RecordsetRequeryOpen 方法可能会导致发生 WillChangeRecordset 或 RecordsetChangeComplete 事件。

如果提供程序不支持书签,则每次从提供程序检索新行时都会发出 RecordsetChange 事件通知。 此事件的频率取决于 RecordsetCacheSize 属性。

对于每个可能的 adReason 值,必须将 adStatus 参数设置为 adStatusUnwantedEvent,以便完全停止关于包含 adReason 参数的任何事件的事件通知。

另请参阅

ADO 事件模型示例 (VC++)
ADO 事件处理程序摘要