FireDAC.Comp.Script.TFDScript.ExecuteAll
Delphi
function ExecuteAll(AParser: TFDScriptParser): Boolean; overload;
function ExecuteAll: Boolean; overload;
C++
bool __fastcall ExecuteAll(TFDScriptParser* AParser)/* overload */;
bool __fastcall ExecuteAll()/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | FireDAC.Comp.Script.pas FireDAC.Comp.Script.hpp |
FireDAC.Comp.Script | TFDScript |
説明
SQL スクリプトを実行します。
ExecuteAll メソッドを呼び出すと、SQL スクリプトを実行できます。
TFDScript では、SQLScriptFileName が指定されている場合は、これが示すファイルからスクリプトを実行できます。指定されていない場合、SQLScripts コレクションで、インデックスがゼロの項目の SQL プロパティからスクリプトを実行できます。
このスクリプトでは、ネスト構造のすべてのスクリプト呼び出しを含む、全体が実行されます。次のいずれかが起きると、スクリプト実行は停止します。
- すべてのスクリプト コマンドが処理された。
- AbortJob メソッドが呼び出された。
- Finished プロパティが True に設定された。
- スクリプトに EXIT/QUIT/STOP コマンドが見つかり、処理された。
- IgnoreError オプションが False で、BreakOnError オプションが True のとき、スクリプト コマンドの 1 つで例外が発生した。
スクリプト コマンドの実行中に発生した例外は、ExecuteAll メソッドの外部に伝播しません。スクリプトの完了状態を確認するには、次の項目を使用します。
- メソッドの結果の値。True の場合は、エラーがなく、False の場合は、少なくとも、1 つのエラーが発生しています。
- TotalErrors プロパティ。スクリプト実行時のエラー数の合計を返します。
- Status プロパティ。
ssFinishWithErrors
値であると、スクリプト実行を停止する、エラーが発生しています。
コマンドの実行前には、BeforeExecute イベント ハンドラが呼び出されます。実行完了後には、AfterExecute イベント ハンドラが呼び出されます。ネスト構造のスクリプトを実行することもできます。BeforeScript イベント ハンドラが呼び出されるのは、すべてのスクリプトの起動前です。スクリプトの完了後には、AfterScript イベント ハンドラが呼び出されます。
他の方法として、ExecuteFile または ExecuteScript メソッドにより、スクリプトを実行できます。
例 1
FDScript1.SQLScriptFileName := 'c:\temp\createdb.sql'; FDScript1.ExecuteAll;
例 2
次のコードは、スクリプト実行をラップしてトランザクションにする方法を示します。
FDConnection1.StartTransaction; try FDScript1.ExecuteAll; finally if FDScript1.TotalErrors > 0 then FDConnection1.Rollback else FDConnection1.Commit; end;