方案是这样的:
我们有一些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方法。