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