方案是这样的:

我们有一些SQL表。我们正在对该表执行SQL查询,并且在TADOQuery对象中有结果。

var
  qryOryginal, qryClone: TADOQuery;

begin
  //setup all the things here
  qryOryginal.Active := True;
  qryClone.Clone(qryOryginal, ltBatchOptimistic);
  qryOryginal.Delete; //delete in qryOryginal casues that qryClone deletes its record too!
end;


因此,克隆数据集后,我的qryClone应该可以保存独立的数据(至少我是这么认为的)。但是,对qryOryginal执行Delete会导致对qryClone进行相同的操作。我不要

有任何想法吗?

我知道我可以将数据存储在其他地方,也许在TClientDataSet中,但是我想首先尝试上述解决方案。

在此先感谢您的时间。

最佳答案

克隆只是将光标克隆到数据集上,而不复制保存在数据集中的数据。

如果需要两个独立的数据,则必须将数据从原始数据集复制到第二个数据集中。

如果要读取或修改单个数据集而不更改数据集上的当前光标,则可以使用Clone方法。

10-05 22:25