是否可以在不更改当前记录的情况下修改客户端数据集中的数据?

时间:2013-10-01 07:17:46

标签: delphi delphi-xe2 tclientdataset

我有一个TClientDataSet来存储来自医疗器械的数据。此客户端数据集链接到网格以实时显示数据。我的问题是,当用户正在编辑数据,并且仪器发送新数据包时,用户已修改但尚未发布的数据将丢失,因为我只能在当前记录上获得TBookmark,附加新记录,然后goto保存的书签(有时不是正确的记录,显然是由于新记录)。如有必要,我可以检查数据集的StatePost,然后设置State,我正在寻找一种方法来更新客户端数据集中的数据,而不会影响其State 。这甚至可能吗?

1 个答案:

答案 0 :(得分:4)

克隆数据集并修改克隆上的数据。

Cary Jensen的文件在这里:http://edn.embarcadero.com/article/29416

基本上你需要像

这样的东西
var
  lEdDataset: TClientdataset;
begin
  lEdDataset := TClientDataSet.create(nil);
  try
    lEdDataset.CloneCursor(SourceDataSet, True**); 
    StoreMedDeviceRecord(lEdDataset);
  finally
    lEdDataset.free; 
  end;

**您需要阅读关于True / False设置的文档并确定您实际需要的内容(我不记得副手)