如何知道TClientDataSet.Delta数据集中每第记录是删除,修改或新增?

xjjdanran 2003-10-02 08:02:10
我想根据Delta 属性来手动提交客户端数据集的更改,访问Delta属性,只知道:凡是更新的记录Delta中存在旧记录和相应的修改过的字段(其它没有修改的字段为空)两条记录;而删除和新增的记录只存在删除的和新增的记录.如果经过多次操作后,一次提交,如何区别这些操作呢?
...全文
427 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joe889988 2010-06-02
  • 打赏
  • 举报
回复
ClientDataSet2.Data:=ClientDataSet1.Delta;
ClientDAtaSet2.First;
while not ClientDataSet2.Eof do
begin
if ClientDataSet2.UpdateStatus=usUnModified then
Memo1.Lines.Add('UnModified')
else
if ClientDataSet2.UpdateStatus=usModified then
Memo1.Lines.Add('Modified')
else
if ClientDataSet2.UpdateStatus=usInserted then
Memo1.Lines.Add('Insert')
else
if ClientDataSet2.UpdateStatus=usDeleted then
Memo1.Lines.Add('Delete');
ClientDataSet2.Next;
end;
RiverHill 2003-10-23
  • 打赏
  • 举报
回复
TClientDataSet里面的.State有好几种属性,其中有dsInsert, dsEdit等等
delphi1234567 2003-10-03
  • 打赏
  • 举报
回复
在 ClientDataSet 连接的 DataSetProvider.OnBeforeUpdateDate(...; UpdateKind ...)

此参数指出当前操作的记录是哪种类型的, ukInsert, ukModify, ukDelete
zousoft 2003-10-03
  • 打赏
  • 举报
回复
不知道,帮你顶把。
对了,你可以把delta赋给另一个clientdataset的data,这样可能研究起来方便些。
xjjdanran 2003-10-03
  • 打赏
  • 举报
回复
谢谢sousoft,我是这样跟踪的,并在DBGrid中显示出来了.
看来还是得花时间去记录每一次的操作了!
不知其他大虾们还有什么办法?

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧