下面的代吗或许对你有帮助: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 可以显示出已更改的记录
//均测试 ok 可以显示出已更改的记录的个数. 至于,在TDbgrid把状态显示出来,我想可以建立一计算字段填充一下 只是思路 没有测试过.我想你完成它应该没问题.
假如用TDbgrid来显示数据,假设某一个表有5条数据,那么Tdbgrid就显示
5条数据,假如我把Tadodataset的LocyType设置ltBatchOptimistic,我直接
在Tdbgrid修改第三行数据,然后用键盘上的方向键向上或向下移动(没有提
交数据),好了,那么我如何知道第三行的数据已经修改过(记录已经移到第
二行或第三行)?如果说是用BDE连接数据库的,只要用Tquery的属性
UpdatesPending就可以判断缓冲数据是否提交,就可以判断有没有修改过数据。
用Tadodataset或Tadoquery能否做得到?
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 可以显示出已更改的记录
至于,在TDbgrid把状态显示出来,我想可以建立一计算字段填充一下
只是思路 没有测试过.我想你完成它应该没问题.