FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

property OnExecuteError: TFDExecuteErrorEvent read FOnExecuteError

C++

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

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 Parameters ATimes 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 Parameters AOffset 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;

Siehe auch