API:FireDAC.Comp.Client.TFDStoredProc.OnExecuteError

提供:RAD Studio API Documentation

Delphi

property OnExecuteError: TFDExecuteErrorEvent read FOnExecuteError write FOnExecuteError;

C++

__property OnExecuteError;

プロパティ

種類 可視性 ソース ユニット
event published
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDStoredProc

説明

配列 DML クエリを実行中に、エラーが起きたとき、このイベントが発生します。 {{#multireplace:FireDAC.Comp.Client.TFDStoredProc.OnExecuteError|H21=!|H25=%|H28=(|H29=)|H2A=*|H2B=+|H2F=/|H3C=<|H3D==|H3E=>|H5B=[|H5D=]|H5E=^|H7C=|}} は {{#multireplace:FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError|H21=!|H25=%|H28=(|H29=)|H2A=*|H2B=+|H2F=/|H3C=<|H3D==|H3E=>|H5B=[|H5D=]|H5E=^|H7C=|}} を継承しています。以下の内容はすべて {{#multireplace:FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError|H21=!|H25=%|H28=(|H29=)|H2A=*|H2B=+|H2F=/|H3C=<|H3D==|H3E=>|H5B=[|H5D=]|H5E=^|H7C=|}} を参照しています。


配列 DML クエリを実行中に、エラーが起きたとき、このイベントが発生します。


OnExecuteError イベントが発生するのは、データセットで Execute メソッドを使用して配列 DML を実行できず、ATimes > 1 の場合です。このイベント ハンドラで、次の処理が実行できます。

  • パラメータの配列から、エラーのある行をスキップします。
  • パラメータの配列でエラーのある行の値を変更します。
  • 配列 DML の完全実行を停止します。

メモ: OnExecuteError は、構文エラーまたは ATimes = 1 のとき、呼び出されません。

パラメータの説明:

  • ASender - データセットの参照。
  • ATimes - 現在の配列 DML のサイズ。全体が小さい処理に分割される(たとえば Firebird を利用する)場合、Execute メソッドの ATimes パラメータの値とは異なることがあります。
  • AOffset - 現在の配列 DML のオフセット。エラーのある行をスキップした場合や全体が小さい処理に分割される(たとえば Firebird を利用する)場合、Execute メソッドの AOffset パラメータの値とは異なることがあります。
  • AError - 元の DBMS から返されたエラー。パラメータ配列中のエラーのある行のインデックスがどれかは、AError.Errors.RowIndex を確認してください。
 procedure TForm1.ADQuery1ExecuteError(ASender: TObject; ATimes,
   AOffset: Integer; AError: EFDDBEngineException; var AAction: TFDErrorAction);
 begin
   if AException.Errors[0].Kind = ekUKViolated then
     AAction := eaSkip
   else
     AAction := eaFail;
 end;

関連項目