FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError
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;