FireDAC.Comp.DataSet.TFDDataSet.OnReconcileError

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property OnReconcileError: TFDReconcileErrorEvent read FOnReconcileError  write FOnReconcileError;

C++

__property TFDReconcileErrorEvent OnReconcileError = {read=FOnReconcileError, write=FOnReconcileError};

Propriétés

Type Visibilité  Source Unité  Parent
event public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet

Description

Se déclenche quand un ensemble de données doit concilier une mise à jour à un enregistrement qui n'a pu être appliquée.

Utilisez le gestionnaire d'événement OnReconcileError pour répondre à des conditions d'erreur qui se produisent quand la méthode ApplyUpdates a appliqué des modifications aux enregistrements de la base de données. Le gestionnaire d'événement OnReconcileError est appelé par la méthode Reconcile.

Lors de l'invocation de Reconcile, l'ensemble de données boucle à travers tous les enregistrements avec les objets exception associés. Pour chacun de ces enregistrements, il appelle le gestionnaire d'événement OnReconcileError. Le gestionnaire d'événement obtient :

  • E -- la référence à l'objet exception. Voir la rubrique Gestion des erreurs pour obtenir des informations sur la façon de travailler avec les objets exception.
  • UpdateKind -- le type de mise à jour de l'enregistrement en cours. Il peut prendre l'une des valeurs suivantes : rsInserted, rsDeleted, rsModified, rsUnchanged.

Après la gestion de l'erreur, le gestionnaire d'événement doit définir l'argument Action. La valeur par défaut est raMerge. Les valeurs possibles sont :

Action

Description

raSkip

Ignore l'enregistrement en cours.

raAbort

Quitte l'appel de Reconcile.

raMerge

Efface l'état d'erreur de l'enregistrement en cours, afin que les modifications de l'enregistrement deviennent l'état initial de cet enregistrement. En d'autres termes, il fusionne les modifications au cache des enregistrements de l'ensemble de données.

raCorrect

Efface l'état d'erreur de l'enregistrement en cours. En d'autres termes, il marque l'enregistrement comme correctement appliqué.

raCancel

Annule les modifications de l'enregistrement en cours.

raRefresh

Annule les modifications de l'enregistrement en cours et relit les valeurs d'enregistrement à partir de la base de données.

Le gestionnaire d'événement peut analyser les valeurs de champs d'origine et en cours, en lisant les propriétés OldValue et NewValue. L'application peut aussi mettre à jour la valeur du champ en cours, définir Action sur raCorrect, et rappeler plus tard ApplyUpdates.

Exemple

 
 procedure TForm1.FDMemTable1ReconcileError(DataSet: TFDDataSet; E: EFDException;
   UpdateKind: TFDDatSRowState; var Action: TFDDAptReconcileAction);
 begin
   if (UpdateKind = rsInserted) and (E is EFDDBEngineException) and (EFDDBEngineException(E).Kind = ekUKViolated) then begin
     DataSet.FieldByName('ID').AsInteger := GetNextFreeID;
     Action := raCorrect;
   end;
 end;

Voir aussi