检查没一条记录的 UpdateStatus 值
usUnmodified //未修改过
usModified   //修改过
usInserted  //新添加的
usDeleted   //已删除的

解决方案 »

  1.   

    用updatestatus是可以的,但它只是判断当前记录,不是所有记录,请看看吧:
    假如用TDbgrid来显示数据,假设某一个表有5条数据,那么Tdbgrid就显示
    5条数据,假如我把Tadodataset的LocyType设置ltBatchOptimistic,我直接
    在Tdbgrid修改第三行数据,然后用键盘上的方向键向上或向下移动(没有提
    交数据),好了,那么我如何知道第三行的数据已经修改过(记录已经移到第
    二行或第三行)?如果说是用BDE连接数据库的,只要用Tquery的属性
    UpdatesPending就可以判断缓冲数据是否提交,就可以判断有没有修改过数据。
    用Tadodataset或Tadoquery能否做得到?
      

  2.   

    下面的代吗或许对你有帮助:procedure TForm1.Button2Click(Sender: TObject);
     var i:integer;book1:TbookStr;
    begin
     i:=0;
     book1:=self.ADODataSet1.Book;
     self.ADODataSet1.first;
     with self.ADODataSet1 do
      while(not eof) do
       begin
       if UpdateStatus =usModified  then  inc(i);
       next;
      end;
     self.ADODataSet1.Book:=book1;
     showMessage(intTostr(i));
    end;
    //环境: win98+sql server 7.0 和 NT4.0 +SQL server7.0
    //均测试 ok 可以显示出已更改的记录
      

  3.   

    //均测试 ok 可以显示出已更改的记录的个数.
    至于,在TDbgrid把状态显示出来,我想可以建立一计算字段填充一下
    只是思路 没有测试过.我想你完成它应该没问题.