在對資料進行異動前,為避免異動失敗,造成後續存取資料不正確,因此使用ADO交易模式,在發生錯誤失敗時,回復相關異動。
主要動作如下:
- 在對資料庫進行任何異動前先 BeginTrans,開始進行新的交易 (ADOConnection 必需已與資料庫建立連接 Connected = True)
- 資料庫異動內容 Select, Insert, Update, Delete
- 確認異動內容 CommitTrans,此時將資料異動寫入資料庫
- 如發生錯誤則取消異動內容 RollBackTrans,則將所有異動取消
Code Sample:
begin
Try
ADOConnection1.BeginTrans; // 開始交易
ADOQuery1.Insert; // 或 Delete, Edit
ADOQuery1.FieldByName('fieldname').Value := ...;
ADOQuery1.Post;
ADOQuery1.Close;
ADOQuery1.SQL.Text:='............';
ADOQuery1.ExecSQL / Open;
ADOConnection1.CommitTrans; // 確認交易
Except
ADOConnection1.RollBackTrans; // 取消交易
end;
end;