将ADO数据集(ADODataSet或者ADOQuery)设为BatchUpdate状态后,对该数据集的添加,修改,删除操作都应该在内存中进行(调用UpdateBatch之前)。现有一想法,先对数据集进行添加,修改,删除操作,然后在某一事件中调用UpdateBatch统一更新回数据库,但是我的删除操作涉及级联删除,我想知道如何在调用UpdateBatch之前判断出某一条记录是处于删除状态。我用ADODataSet试过,好像判断不出来。请高手指点。

解决方案 »

  1.   

    试试这个:function UpdateStatus: TUpdateStatus; override;Call UpdateStatus for datasets opened in batch update mode to determine the update status of the currently active record. UpdateStatus only provides useful information when the dataset has been opened in batch update mode. Otherwise there cannot be any unapplied updates.
      

  2.   

    我试过UpdataStatus,在内存中被Delete掉的记录,无法用这个方法检测到。