FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError
Delphi
property OnExecuteError: TFDExecuteErrorEvent read FOnExecuteError write FOnExecuteError;
C++
__property TFDExecuteErrorEvent OnExecuteError = {read=FOnExecuteError, write=FOnExecuteError};
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
event | public | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDAdaptedDataSet |
Beschreibung
Das Ereignis wird ausgelöst, wenn bei der Ausführung einer Array DML-Abfrage ein Fehler generiert wird.
Das Ereignis OnExecuteError wird ausgelöst, wenn die Ausführung der Array DML mit der Methode Execute durch die Datenmenge fehlschlägt und wenn ATimes
> 1 ist. Mit dieser Ereignisbehandlungsroutine können Sie:
- Die fehlerhafte Zeile im Parameter-Array überspringen.
- Die Werte in der fehlerhaften Zeile im Parameter-Array ändern.
- Die Array DML-Ausführung anhalten.
Hinweis: OnExecuteError wird nicht für Syntaxfehler aufgerufen oder wenn
ATimes
= 1 ist.
Beispiel
Parameterbeschreibung:
ASender
– Die Referenz auf die Datenmenge.ATimes
– Die aktuelle Array DML-Größe. Der Wert dieses Parameters kann sich von dem des ParametersATimes
der Methode Execute unterscheiden, wenn die gesamte Operation in kleinere Operationen aufgeteilt ist (z. B. in Firebird).AOffset
– Der aktuelle Array DML-Offset. Der Wert dieses Parameters kann sich von dem des ParametersAOffset
der Methode Execute unterscheiden, wenn übersprungene fehlerhafte Zeile vorhanden sind oder die gesamte Operation in kleinere Operationen aufgeteilt ist (z. B. in Firebird).AError
– Der vom DBMS zurückgegebene ursprüngliche Fehler. Überprüfen Sie AError.Errors.RowIndex hinsichtlich des Index der fehlerhaften Zeile im Parameter-Array.
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;