FireDAC.Comp.Client.TFDQuery.OnExecuteError
Delphi
property OnExecuteError;
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;