WillChangeRecord 和 RecordChangeComplete 事件 (ADO)

Recordset 中的一个或多个记录(行)更改之前调用 WillChangeRecord 事件。 RecordChangeComplete 事件在一个或多个记录更改后调用。

语法

  
WillChangeRecord adReason, cRecords, adStatus, pRecordset  
RecordChangeCompleteadReason, cRecords, pError, adStatus, pRecordset  

参数

adReason
一个 EventReasonEnum 值,用于指定此事件的原因。 它的值可以是 adRsnAddNew、adRsnDelete、adRsnUpdate、adRsnUndoUpdate、adRsnUndoAddNew、adRsnUndoDelete 或 adRsnFirstChange。

cRecords
一个长整型值,指示更改(受影响)的记录数。

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

adStatus
EventStatusEnum 状态值。

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

调用 RecordChangeComplete 事件时,如果导致事件的操作成功,则此参数设置为 adStatusOK;如果操作失败,则设置为 adStatusErrorsOccurred。

在 WillChangeRecord 返回之前,将此参数设置为 adStatusCancel 以请求取消导致此事件的操作,或将此参数设置为 adStatusUnwantedEvent 以防止后续通知。

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

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

备注

由于以下 Recordset 操作,可能会针对行中第一个更改的字段发生 WillChangeRecord 或 RecordChangeComplete 事件:UpdateDeleteCancelUpdateAddNewUpdateBatchCancelBatch。 RecordsetCursorType 的值决定了哪些操作会导致事件发生。

在 WillChangeRecord 事件期间,RecordsetFilter 属性设置为 adFilterAffectedRecords。 处理事件时不能更改此属性。

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

另请参阅

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