我正在使用絕對數據庫作爲我的數據庫。由於絕對數據庫不支持觸發器,我必須編寫自己的UPDATE觸發器。我試過這種方式:記錄更改時更新表時間戳字段
procedure TDataModule2.ABSQuery6AfterPost(DataSet: TDataSet);
begin
ABSQuery4.Close;
ABSQuery4.SQL.Clear;
ABSQuery4.SQL.Text :='UPDATE MYTABLE SET RECORDCHANGED=CURRENT_TIMESTAMP';
ABSQuery4.ExecSQL;
end;
但是這樣我更新整個表。我如何只更新已更改的記錄(行)?
編輯:這是我如何使它工作
procedure TDataModule2.ABSQuery6AfterPost(DataSet: TDataSet);
begin
with ABSQuery4 do begin
ABSQuery4.Close;
ABSQuery4.SQL.Clear;
ABSQuery4.SQL.Text :='UPDATE MYTABLE SET RECORDCHANGED=CURRENT_TIMESTAMP WHERE T_ID=:a1';
ABSQuery4.Params.ParamByName('a1').AsInteger := ABSQuery6.FieldByName('T_ID').AsInteger;
ABSQuery4.ExecSQL;
end;
end;
我在哪裏得到 「id_of_last_changed_record」 ...:)...... ???? – user763539
當然你知道你剛剛更新的記錄的ID。你如何在不知道ID的情況下更新它? –