トランザクションを利用してみましょう
(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ボタンを押してみましょう
全ての変更がキャンセルされるのがわかります