トランザクションを利用してみましょう
(1)トランザクションとは?
トランザクションを利用すると、複数のINSERTやUPDATE命令をまとめて更新することができます
次々にレコードを挿入していって間違いに気付き、やり直すことも可能です。
(2)Delphiでのトランザクションの実際
Delphiでトランザクションを利用するには、Databaseコンポーネントを利用します
そして、StartTransactionメソッドを呼ぶことで開始されます
Commitメソッドを呼ぶことで変更を保存し、Rollbackメソッドでキャンセルします
※ある1レコードのデータの不備によりCommitが失敗した場合はその回のトランザクション全てがキャンセルされます
(3)前回のアプリを改造してトランザクション対応にしましょう
ボタン3つと、変更が見て取れるようにDBGridを1つ置きましょう
コード:
DBGrid1.DataSource = DataSource3
//TS開始ボタン
procedure TForm1.Button1Click(Sender: TObject);
begin
with DBISAMDatabase1 do begin
if not InTransaction then
StartTransaction;
end;
end;
//Commitボタン
procedure TForm1.Button2Click(Sender: TObject);
begin
with DBISAMDatabase1 do begin
if InTransaction then
Commit;
end;
end;
//Rollbackボタン
procedure TForm1.Button3Click(Sender: TObject);
begin
with DBISAMDatabase1 do begin
if InTransaction then begin
Rollback;
DBISAMTable3.Refresh;
end;
end;
end;
(4)動作確認
TS開始ボタンを押してから複数レコードを編集し、Rollbackボタンを押してみましょう
全ての変更がキャンセルされるのがわかります

