FireDAC.Comp.Client.TFDCustomStoredProc.ExecProc
Delphi
procedure ExecProc; overload;
function ExecProc(const AProcName: String): LongInt; overload;
function ExecProc(const AProcName: String; const AParams: array of Variant): LongInt; overload;
function ExecProc(const AProcName: String; const AParams: array of Variant; const ATypes: array of TFieldType): LongInt; overload;
C++
void __fastcall ExecProc()/* overload */;
int __fastcall ExecProc(const System::UnicodeString AProcName)/* overload */;
int __fastcall ExecProc(const System::UnicodeString AProcName, const System::Variant *AParams, const int AParams_High)/* overload */;
int __fastcall ExecProc(const System::UnicodeString AProcName, const System::Variant *AParams, const int AParams_High, const Data::Db::TFieldType *ATypes, const int ATypes_High)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDCustomStoredProc |
説明
指定されたストアド プロシージャを、DBMS セッション内で実行します。
このメソッドは、以下のようにオーバーロード(多重定義)されています。
- 第1オーバーロード メソッドは、DBMS セッションで指定されたストアド プロシージャを実行します。
FDStoredProc1.StoredProcName := 'myproc';
FDStoredProc1.Prepare;
FDStoredProc1.ParamByName('inval').Value := 100;
FDStoredProc1.ExecProc;
ShowMessage(FDStoredProc1.ParamByName('outval').AsString);
- 第2オーバーロード メソッドは、DBMS セッションで指定されたストアド プロシージャを実行します。
AProcName
は、「;」の後に指定されたオーバーロード数を含むことができます。
FDStoredProc1.ExecProc('myproc');
- 第3オーバーロード メソッドは、指定されたストアド関数を実行し、ストアド関数の引数に対してパラメータ値を割り当て、その値を返します。
AParams
値は、入力パラメータに割り当てられます。
FDStoredProc1.ExecProc('myproc;2', [100, 'qweqwe']);
- 第4オーバーロード メソッドは、指定されたストアド関数を実行し、ストアド proc 引数に対してパラメータ データ型を割り当て、その値を返します。
FDStoredProc1.ExecProc('myproc', [100, 'qweqwe'], [ftInteger, ftWideString]);
ExecProc を呼び出すと、現在割り当てられているストアド プロシージャの名前を使用して、DBMS セッションでストアド プロシージャを実行することができます。ExecProc を使用すると、データへのカーソルを返さないストアド プロシージャを実行することができます。
ExecProc を呼び出す前に、
ストアド プロシージャの名前を、CatalogName、SchemaName、PackageName、StoredProcName、Overload の各プロパティに割り当てます。fiMeta
が FetchOptions.Items に設定されている場合、Prepare メソッドを呼び出します。その後、Params プロパティがパラメータで埋められます。そうではない場合、fiMeta
が FetchOptions.Items に設定されていなければ、Params プロパティに正しいパラメータのセットを用意した後、Prepare メソッドを呼び出します。その後、ストアド プロシージャを呼び出した後、SQL 文は構築され、パラメータがバインドされます。
そして、入力パラメータに値を割り当て、ExecProc を呼び出します。ExecProc から戻ったら、出力パラメータ値を読み取ることが可能になります。
ResourceOptions.CmdExecMode を使用すると、非同期実行モードを制御することができます。 そして、ResourceOptions.CmdExecTimeout では、ストアド プロシージャの最大実行回数を設定します。 その回数の後、ストアド プロシージャの実行はキャンセルされ、例外が発生します。
ストアド プロシージャ実行をキャンセルするには、TFDAdaptedDataSet.AbortJob を使用します。
ストアド プロシージャ実行の前には、BeforeExecute イベントが発生します。 サーバーがストアド プロシージャ実行エラーを返した場合、FireDAC は例外を発生させます。 これは、OnError イベント内で解析できます。 ストアド プロシージャ実行が完了した後には、AfterExecute イベントが発生します。
関連項目
- ストアド プロシージャの実行
- FireDAC.Comp.Client.TFDRdbmsDataSet.Prepare
- FireDAC.Comp.Client.TFDCustomStoredProc.CatalogName
- FireDAC.Comp.Client.TFDCustomStoredProc.SchemaName
- FireDAC.Comp.Client.TFDCustomStoredProc.PackageName
- FireDAC.Comp.Client.TFDCustomStoredProc.StoredProcName
- FireDAC.Comp.Client.TFDCustomStoredProc.Overload
- FireDAC.Comp.Client.TFDAdaptedDataSet.AbortJob
- FireDAC.Comp.Client.TFDAdaptedDataSet.OnError