トランザクションを利用してみましょう

(1)トランザクションとは?

トランザクションを利用すると、複数のINSERTやUPDATE命令をまとめて更新することができます
次々にレコードを挿入していって間違いに気付き、やり直すことも可能です。

(2)Delphiでのトランザクションの実際

Delphiでトランザクションを利用するには、Databaseコンポーネントを利用します

そして、StartTransactionメソッドを呼ぶことで開始されます
Commitメソッドを呼ぶことで変更を保存し、Rollbackメソッドでキャンセルします

※ある1レコードのデータの不備によりCommitが失敗した場合はその回のトランザクション全てがキャンセルされます

(3)前回のアプリを改造してトランザクション対応にしましょう

ボタン3つと、変更が見て取れるようにDBGridを1つ置きましょう

sample

コード:

  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ボタンを押してみましょう
全ての変更がキャンセルされるのがわかります

sample