共用方式為


WillChangeRecord 和 RecordChangeComplete 事件 (ADO)

WillChangeRecord 事件會在 Recordset變更中的一或多個記錄 (資料列) 之前呼叫。 RecordChangeComplete 事件會在一或多個記錄變更之後呼叫。

語法

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

參數

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

cRecords
Long 值,表示變更 (受影響) 的記錄數目。

pError
Error 物件。 該物件會描述如果 adStatus 值為 adStatusErrorsOccurred 時所發生的錯誤;否則不會設定。

adStatus
EventStatusEnum 狀態值。

呼叫 WillChangeRecord 時,如果造成事件的作業成功,此參數會設定為 adStatusOK。 如果此事件無法要求解除擱置的作業,便會設定為 adStatusCantDeny

呼叫 RecordChangeComplete 時,如果造成事件的作業成功,此參數會設定為 adStatusOK,如果作業失敗,則會設定為 adStatusErrorsOccurred

WillChangeRecord 傳回之前,請將此參數設定為 adStatusCancel 以要求取消會導致此事件的作業,或將此參數設定為 adStatusUnwantedEvent 以防止後續通知。

RecordChangeComplete 傳回之前,請將此參數設定為 adStatusUnwantedEvent 以防止後續的通知。

pRecordset
Recordset 物件。 發生此事件的 Recordset

備註

WillChangeRecordRecordChangeComplete 事件可能會因為下列 Recordset 作業而對資料列中的第一個變更欄位發生:UpdateDeleteCancelUpdateAddNewUpdateBatchCancelBatch。 Recordset CursorType 的值會決定哪些作業導致事件發生。

在WillChangeRecord事件期間,Recordset Filter 屬性會設定為adFilterAffectedRecords。 處理事件時,您無法變更此屬性。

您必須針對每個可能的 adReason 值將 adStatus 參數設定為 adStatusUnwantedEvent,才能針對包含 adReason 參數的任何事件完全停止事件通知。

另請參閱

ADO 事件模型範例 (VC++)
ADO 事件處理常式摘要