FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError

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

Delphi

property OnExecuteError: TFDExecuteErrorEvent read FOnExecuteError  write FOnExecuteError;

C++

__property TFDExecuteErrorEvent OnExecuteError = {read=FOnExecuteError, write=FOnExecuteError};

プロパティ

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

説明

配列 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;

関連項目