我再次遇到了 TClientDataSet 的问题。我想这很简单,但我现在挣扎了一段时间。
这是一些代码,显示了我想要做什么:
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Insert;
ClientDataSet1.FieldByName('anruf_von').AsDateTime := time;
ClientDataSet1.Post;
ClientDataSet1.ApplyUpdates(0); // without this applyUpdates in button2 works.
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientDataSet1.edit;
ClientDataSet1.FieldByName('anruf_bis').AsDateTime := time;
ClientDataSet1.Post;
showmessage(intToStr(ClientDataSet1.ChangeCount)); // returns 1
if ClientDataSet1.ChangeCount > 0 then
ClientDataSet1.applyUpdates(0);
end;
我认为代码是自我解释的。当我按下 button1 时,会创建一条记录,并在调用 applyUpdates 后将其写入数据库。当我按下按钮 2 时,我想更改此记录并将更新应用到数据库 - 这不起作用。但是当我注释掉button1中的applyUpdates时,button2中的applyUpdates可以正常工作。