WillChangeRecord 和 RecordChangeComplete 事件 (ADO)

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

语法

  
WillChangeRecord adReason, cRecords, adStatus, pRecordset  
RecordChangeCompletedReason, cRecords, pError, adStatus, pRecordset  

参数

adReason
EventReasonEnum 值,该值指定此事件的原因。 其值 可以是 adRsnAddNewadRsnDeleteadRsnUpdateadRsnUndoUpadRsnUndoAddNewadRsnUndoDeleteadRsnFirstChange

cRecords
一个 Long 值,该值指示更改的记录数(受影响的)。

pError
错误 对象。 它描述 adStatus 的值 adStatusErrorsOccurred时发生的错误;否则,它未设置。

adStatus
EventStatusEnum 状态值。

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

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

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

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

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

言论

WillChangeRecordRecordChangeComplete 事件可能因以下 Recordset 操作而导致行中的第一个更改字段发生:UpdateDeleteCancelUpdateAddNewUpdateBatchCancelBatchRecordsetCursorType 的值 确定导致事件发生的操作。

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

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

另请参阅

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