FireDAC.Comp.Client.TFDQuery.OnExecuteError

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property OnExecuteError: TFDExecuteErrorEvent read FOnExecuteError write FOnExecuteError;

C++

__property OnExecuteError;

Propriétés

Type Visibilité  Source Unité  Parent
event published
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDQuery

Description

L'événement est déclenché quand une erreur est générée, lors de l'exécution d'une requête Array DML.

FireDAC.Comp.Client.TFDQuery.OnExecuteError hérite de FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError. Tout le contenu en-dessous de cette ligne se réfère à FireDAC.Comp.Client.TFDAdaptedDataSet.OnExecuteError.

L'événement est déclenché quand une erreur est générée, lors de l'exécution d'une requête Array DML.

L'événement OnExecuteError est déclenché, quand l'ensemble de données n'a pas réussi à exécuter l'opération Array DML au moyen de la méthode Execute et quand ATimes > 1. Avec ce gestionnaire d'événement, vous pouvez :

  • ignorer la ligne erronée du tableau des paramètres ;
  • changer les valeurs de la ligne erronée du tableau des paramètres ;
  • arrêter l'exécution Array DML complète.

Remarque : OnExecuteError ne sera pas appelé pour les erreurs de syntaxe ou quand ATimes = 1.

Exemple

Description des paramètres :

  • ASender - La référence à l'ensemble de données.
  • ATimes - La taille de l'opération Array DML en cours. Elle peut être différente de la valeur du paramètre ATimes de la méthode Execute, si l'opération complète est divisée en opérations plus petites (sur Firebird, par exemple).
  • AOffset - Le décalage de l'opération Array DML en cours. Elle peut être différente de la valeur du paramètre AOffset de la méthode Execute, si des lignes erronées ont été ignorées ou si l'opération complète est divisée en opérations plus petites (sur Firebird, par exemple).
  • AError - L'erreur d'origine renvoyée par le SGBD. Vérifiez AError.Errors.RowIndex pour l'index de la ligne erronée dans le tableau des paramètres.
 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;

Voir aussi