FireDAC.Comp.Script.TFDScript.ExecuteAll

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

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;

関連項目