FireDAC.Comp.Client.TFDCustomTransaction.Commit

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

procedure Commit;

C++

void __fastcall Commit();

プロパティ

種類 可視性 ソース ユニット
procedure
function
public
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDCustomTransaction

説明

現在のトランザクションでデータに加えられた変更を永続的に保存し、場合によっては現在のトランザクションを終了します。


Commit を呼び出すと、現在のトランザクションで INSERT/UPDATE/DELETE コマンドなどによりデータベースに加えられた変更を永続的に保存できます。

FireDAC ではネストしたトランザクションをサポートしているため、現在のトランザクションは、直近の StartTransaction 呼び出しで開始されたトランザクションになります。ほとんどの DBMS のように、ネストしたトランザクションがデータベースでサポートされていない場合、FireDAC では、ネストしたトランザクションをセーブポイントを使ってエミュレートします。

Commit を呼び出す前に、アプリケーションでは Active プロパティの状態を確認することもできます。アプリケーションで Commit を呼び出しても、現在のトランザクションがない場合は、例外が発生します。

InterBase/Firebird データベースに対して Commit を呼び出すと、このトランザクション オブジェクトに関連付けられているデータセットおよびコマンドがすべて閉じられ準備解除されます。その他の一部の DBMS では、この呼び出しでアクティブな結果セットがすべて無効になります(たとえば、MS SQL Server 2005 など)。

 procedure TForm1.ChangeButtonClick(Sender: TObject);
 begin
   FDQuery1.Transaction := FDTransaction1;
   FDQuery1.SQL.Text := 'update employees set salary = salary * :k where id = :id';
   FDTransaction1.StartTransaction;
   try
     FDQuery1.ExecSQL('', [1.2, 100]);
     FDQuery1.ExecSQL('', [1.3, 200]);
     FDTransaction1.Commit;
   except
     FDTransaction1.Rollback;
     raise;
   end;
 end;

関連項目