先雙擊 clientdataset --> Add all fileds,然後注意 autoinc 欄位的 ReadOnly 屬性是 false。
... var Form2: TForm2; // 因為 database 給 autoInc 欄位的值是正值, // 所以我們給的暫時值採負值, 避免另一個 keyviolation 情況 sid: integer = -1; implementation {$R *.dfm} procedure TForm2.cdsTableNewRecord(DataSet: TDataSet); begin DataSet.FieldByName('tid').AsInteger := sid; Dec(sid); end; procedure TForm2.btnSaveClick(Sender: TObject); begin // 在 applyupdate, 正式存入 database 後, // 再將 sid 歸為 -1 if (cdsTable.ApplyUpdates(0)=0) then begin sid := -1; cdsTable.Refresh; // 更新一下 取得 databaseset 給的正式值 end; end;
↑ 這裡我們給予 table 的 tid 欄位暫時的負值。
↑ applyupdate 後,正式將資料存回 database,並向 database 取得新的實際的 tid 欄位的值。
沒有留言:
張貼留言