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 コマンド実行は、そこから開始します。ATimes は、Params.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);

関連項目

サンプル