FireDAC.Phys.MongoDBDataSet.TFDMongoQuery.OnReconcileError
Delphi
property OnReconcileError;
C++
__property OnReconcileError;
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
event | published | FireDAC.Phys.MongoDBDataSet.pas FireDAC.Phys.MongoDBDataSet.hpp |
FireDAC.Phys.MongoDBDataSet | TFDMongoQuery |
Beschreibung
Wird ausgelöst, wenn eine Datenmenge die Aktualisierung eines Datensatzes abstimmen muss, die nicht zugewiesen werden kann.
FireDAC.Phys.MongoDBDataSet.TFDMongoQuery.OnReconcileError erbt von FireDAC.Comp.DataSet.TFDDataSet.OnReconcileError. Der folgende Inhalt bezieht sich auf FireDAC.Comp.DataSet.TFDDataSet.OnReconcileError.
Wird ausgelöst, wenn eine Datenmenge die Aktualisierung eines Datensatzes abstimmen muss, die nicht zugewiesen werden kann.
Mit der Ereignisbehandlungsroutine OnReconcileError reagieren Sie auf Fehlerbedingungen, die auftreten, wenn die Methode ApplyUpdates Änderungen an Datenbankdatensätzen einträgt. Die Ereignisbehandlungsroutine OnReconcileError wird von der Methode Reconcile aufgerufen.
Beim Aufrufen von Reconcile durchläuft die Datenmenge in einer Schleife alle Datensätze mit den zugewiesenen Exception-Objekten. Für jeden dieser Datensätze wird die Ereignisbehandlungsroutine OnReconcileError aufgerufen. Die Ereignisbehandlungsroutine übernimmt:
- E – die Referent auf das Exception-Objekt. Im Thema Fehlerbehandlung finden Sie Informationen zum Arbeiten mit Exception-Objekten.
- UpdateKind – die Aktualisierungsart des aktuellen Datensatzes. Folgende Werte sind möglich:
rsInserted, rsDeleted, rsModified, rsUnchanged
.
Nach der Fehlerbehandlung sollte die Ereignisbehandlungsroutine das Argument Action festlegen. Der Vorgabewert lautet raMerge
. Die folgenden Werte sind möglich:
Aktion |
Beschreibung |
---|---|
|
Überspringt den aktuellen Datensatz. |
|
Beendet den Reconcile-Aufruf |
|
Leert den Fehlerstatus des aktuellen Datensatzes. Die Änderungen an dem Datensatz werden dadurch zum Ausgangsstatus dieses Datensatzes. D. h. die Änderungen werden in den Datensatzzwischenspeicher aufgenommen. |
|
Löscht den aktuellen Fehlerstatus des Datensatzes. D. h. der Datensatz wird als korrekt übernommen. |
|
Annulliert die Änderungen des aktuellen Datensatzes. |
|
Annulliert die Änderungen des aktuellen Datensatzes und liest die Datensatzwerte erneut aus der Datenbank. |
Die Ereignisbehandlungsroutine kann die ursprünglichen und die aktuellen Feldwerte anhand der Eigenschaften OldValue und NewValue analysieren. In der Anwendung kann der aktuelle Feldwert auch aktualisiert, Action auf raCorrect
gesetzt und später wieder ApplyUpdates aufgerufen werden.
Beispiel
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;