FireDAC.Comp.DataSet.TFDDataSet.Execute

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

Delphi

procedure Execute(ATimes: Integer = 0; AOffset: Integer = 0); virtual;

C++

virtual void __fastcall Execute(int ATimes = 0x0, int AOffset = 0x0);

プロパティ

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

説明

SQL コマンドを実行します。


Execute を呼び出して、以下の下位クラス プロパティに現在割り当てられている SQL 文を実行することができます。

Execute を使用して、データのカーソルを返さないクエリ(INSERT、UPDATE、DELETE、CREATE TABLE、CALL、BEGIN .. END など)を実行することができます。SELECT 文などカーソルを返すものの場合は、Execute ではなく Open を呼び出してください。

Execute では、SQL 文の準備がまだの場合には、実行できるよう準備をします。パフォーマンスを向上するには、Execute を最初に呼び出す前に、アプリケーションで通常どおり Prepare メソッドを呼び出してください。

ResourceOptions.CmdExecMode を使用して非同期実行モードを制御することができます。また、ResourceOptions.CmdExecTimeout を使用してコマンド実行の最大時間を設定することができます。その時間が過ぎると、コマンド実行はキャンセルされ、例外が発生します。

コマンド実行をキャンセルするには、AbortJob を使用します。

コマンドの実行前に、BeforeExecute イベントが発生します。サーバーからコマンド実行エラーが返されると、FireDAC は例外を発生させます。これは OnError イベント内で分析することができます。コマンド実行が終了すると、出力パラメータが Params プロパティに設定され、AfterExecute イベントが発生します。

ATimes が 0 または 1 の場合、コマンドは標準モードで実行されます。それ以外の場合は、配列 DML モードで実行されます。デフォルトでは ATimes および AOffset は 0 です。ATimes にはパラメータ配列のサイズを指定します。AOffset には、パラメータ配列のどの行インデックスから配列 DML コマンドの実行を開始するかを指定します。ATimesParams.ArraySize 以下でなければなりません。それより大きい場合には例外が発生します。

コマンドを実行した後、アプリケーションで RowsAffected プロパティの値を見ると、最後のコマンド実行によってどれだけの数のデータベース レコードが影響を受けたかを確認することができます。

 var
   i: Integer;
 ....
 FDQuery1.SQL.Text := 'insert into mytab values (:p1, :p2)';
 FDQuery1.Params.ArraySize := 10;
 for i := 0 to FDQuery1.Params.ArraySize - 1 do begin
   FDQuery1.Params[0].AsIntegers[i] := i;
   FDQuery1.Params[1].AsStrings[i] := 'qwe';
 end;
 FDQuery1.Execute(FDQuery1.Params.ArraySize, 0);

関連項目