Delphi - 将 Delta 应用于 TClientDataSet

use*_*818 1 delphi delphi-xe

我的应用程序使用一个TClientDataSet和一个TDataSource集合。不DataBase涉及。将TClientDataSet被保存在XML格式。我TClientDataSet使用DataSet.SaveToFile方法保存,并且这样做,保存的文件保留了增量更改。我不能使用该DataSet.UpplyUpdates方法,因为如前所述,没有DataBase 因此也没有Provider

DataSet.SaveToFile ('SavedFile.XML') // this retains Delta changes

DataSet.ApplyUpdates (0) // can't use it (no Provider)

我的问题是:在将 Delta 更改TClientDataSet保存到文件之前,如何强制对其应用 Delta 更改?如果保存为某种binary格式,是否会应用 Delta 更改?。注意:关闭并随后打开TClientDataSet也不起作用。

Sir*_*ufo 5

要删除保存的更改,只需调用TCustomClientDataSet.MergeChangeLog

如果您根本不需要更改日志,请在打开数据集后立即设置TCustomClientDataSet.LogChangesFalse(True是默认值)。