Vij*_*bba 4 delphi tclientdataset
有没有办法手动跟踪对clientdataset的delta所做的更改,并手动将更改更新到db.我已经动态创建了一个clientdataset,并且我可以使用tquery加载它,现在用户将对cds中可用的数据执行一些插入更新和删除操作,并且在最后阶段这些数据(已修改)应该是使用tquery(不应用更新)发布到数据库中..
从TQuery调用填充数据集后MergeChangeLog,记录不会像新插入的那样突出,并确保LogChanges已设置.
然后,在最后阶段,在使用数据集更新查询之前,设置StatusFilter为只显示要对其执行操作的记录.例如;
ClientDataSet1.StatusFilter := [usDeleted];
Run Code Online (Sandbox Code Playgroud)
您还可以UpdateStatus在记录上使用它来查看它是否已被修改等.
但请注意,似乎会有多个版本的记录,并且有点难以理解"更改日志"如何跟踪.并且记录上也可以有多个操作,例如修改几次然后删除它.