使用FireDac时,我在调用CloneCursor时出错。
procedure TFDDataSet.CloneCursor(ASource: TFDDataSet; AReset,
AKeepSettings: Boolean);
begin
...
ASource.FetchAll; //<- exception raise here
...
end;
这是我称之为CloneCursor
的功能procedure TTestDM.tblCt11AfterPost(DataSet: TDataSet);
var
tblCt11Tmp: TFDMemTable;
begin
...
tblCt11Tmp := TFDMemTable.Create(self);
try
tblCt11Tmp.CloneCursor(DataSet as TFDDataSet, False, True);
...
finally
tblCt11Tmp.Free;
end;
如果我在GUI上编辑ct11的每一行并移动到ct11的另一行,则程序tblCt11AfterPost工作正常。
但我扫描ct11,编辑它并发布ct11,程序tblCt11AfterPost将在CloneCursor中引发错误
if tblCt11.Locate('stt_rec', tblPh11stt_rec.Value, []) then
repeat
if not (tblCt11.State in [dsEdit, dsInsert]) then
tblCt11.Edit;
//edit tblCt11 here
tblCt11.Post;
until not tblCt11.LocateEx('stt_rec', tblPh11stt_rec.Value, [lxoFromCurrent]);
请帮帮我。
非常感谢。