我試圖使用ReconcileError事件來允許用戶更正特定記錄中發生的更新錯誤之後的數據。在TClientDataset的ReconcileError方法中處理多個記錄中的更新錯誤
例子:
我有一個字段和3條記錄的數據集,這個領域在數據庫中具有唯一性約束,那麼我換一個價值衝突,當它到達數據庫,然後我打電話的ApplyUpdates上數據集。
這將在提供程序中生成一個錯誤(違反唯一約束),並中止applyupdates進程,並在ReconcileError方法的Action var中返回raAbort。
在ReconcileError方法我tryied使用方法:
Action := HandleReconcileError(aDataSet, UpdateKind, E);
**編輯**
調試和傾倒這是從服務器返回的DataSet的記錄後,我注意到,有2條記錄在這個數據集中,第一個是舊記錄,第二個是我對第一個記錄所做的所有更改。
我有點困惑,我會總是得到這個DataSet 2記錄?我認爲它應該只有一個帶有舊/新值的記錄。
謝謝。
我很困惑,我的DataSet有2條記錄,所有新值都在第二條記錄中,而不是在字段的NewValue屬性中。 – 2010-05-12 19:38:51
我不確定。不過,我想快速測試應該告訴你;只需在CDS中修改幾行不同的內容,然後使用ApplyUpdates並查看OnReconcileError或OnUpdateError中的內容。 – 2010-05-12 20:30:39