adoQuery怎么判断数据集中哪些行被删除

adoQuery如何判断数据集中哪些行被删除
程序界面上有一个adoQuery设置LockType为ltBatchOptimistic,用于录入订单行内容,在所有行都录入/修改/删除完毕后,点击保存按钮才执行UpdateBatch();
现在我需要加入自动登记操作记录的功能,因此需要在UpdateBatch之前知道都修改/删除了哪些内容。
代码:

//保存行修改记录
  with qryLIST do
  begin
    First;
    while not Eof do
    begin
      if UpdateStatus=usDeleted then
      begin
        //这里是删除记录
        Next;
        Continue;
      end;
      if UpdateStatus=usModified then
      begin
        //这里是修改记录
      end;
      Next;
    end;
  end;
  if qryLIST.State<>dsOpening then
    qryLIST.UpdateBatch();

但是实际测试发现,修改记录没有问题,但是删除记录无法保存,这部分代码没有运行,即UpdateStatus=usDeleted不存在。
请问大家,该怎么才能获得被删除的行?

------解决方案--------------------
http://bbs.****.net/topics/390398482
里边估计是找不见了
------解决方案--------------------
BeforeDelete时记录下关键值。
------解决方案--------------------
删除后光标移动了,UpdateStatus状态发动变化了
------解决方案--------------------
  创建一个对照表,提交前和对照表比较即可(比较前,如果qrylist执行了筛选,一定要关闭)。

  创建对照表方法
  1打开qrylist的同时打开qrylist2(对照表)
  2在qrylist的afteropen时qrylist.SaveToFile, 比较前用qrylist2(对照表).LoadFromFile

  个人感觉ADO的批量提交仅仅在大量+简单处理的数据处理上有优势。
  最好是及时提交+触发器处理