在ClientDataSet.Delta的修改行里如何知道修改的了哪些列 ( 积分: 100 )

  • 主题发起人 主题发起人 yhcustc
  • 开始时间 开始时间
Y

yhcustc

Unregistered / Unconfirmed
GUEST, unregistred user!
在ClientDataSet.Delta的修改行里如何知道修改的了哪些列和key(主键),以便生成sql语句或者调用存储过程
通过用temp_cds.data := cds.Delta可以知道所操作的数据集,
当 cds.data 一行数据发生改变,那么 cds.Delta就会两行数据产生(一行是原始数据,另行就是所修改后的值),

temp_cds.data := cds.Delta;
while not temp_cds.eof do
Begin
if (temp_cds.updateStatus = usModified) then
Begin
ShowMessage( '该行数据是修改过的,但是我怎样知道哪些列被修改了?');
end;
if (temp_cds.updateStatus IN [usInserted, usDeleted]) then
Begin
ShowMessage( '新增、删除的行容易处理。 ');
end;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部