0
再次我有一個TClientDataSet的問題。 我想這是一件非常簡單的事情,但我現在爲此奮鬥了一段時間。德爾福 - TClientDataSet:第二次調用applyupdates()不適用更新
下面是一些代碼顯示的內容是我想做的事:
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;
的代碼是自我解釋我的想法。 當我按下按鈕1時,會創建一條記錄,並在調用applyUpdates之後將其寫入數據庫。 當我按下按鈕2時,我想對此記錄進行更改並將更新應用到數據庫 - 這不起作用。 但是,當我註釋掉button1中的applyUpdates時,button2中的applyUpdates正常工作。
不起作用?你是什麼意思? – 2010-07-02 11:01:37
我的意思是更新沒有寫入數據庫表。 – doubleu 2010-07-02 11:12:24
在這種情況下,我會檢查服務器端以查看提供程序使用的SQL。或者,也許第一個調用(Insert)不會返回主鍵字段的值(例如,如果它是由服務器自動生成的),那就是更新失敗的原因? – 2010-07-02 11:18:14