FireDAC.Comp.Client.TFDQuery.OnExecuteError
Delphi
property OnExecuteError: TFDExecuteErrorEvent read FOnExecuteError write FOnExecuteError;
C++
__property OnExecuteError;
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
| event | published | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDQuery |
説明
配列 DML クエリを実行中に、エラーが起きたとき、このイベントが発生します。
FireDAC.Comp.Client.TFDQuery.OnExecuteError は FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError を継承しています。以下の内容はすべて FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError を参照しています。
配列 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;