FireDAC.Comp.DataSet.TFDDataSet.ApplyUpdates
Delphi
function ApplyUpdates(AMaxErrors: Integer = -1): Integer;
C++
int __fastcall ApplyUpdates(int AMaxErrors = 0xffffffff);
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
Beschreibung
Trägt Änderungen für alle Datensätze in dem Änderungsprotokoll der Datenmenge in die Datenbank ein.
Mit ApplyUpdates können Sie Änderungen für alle Datensätze in dem Änderungsjournal der Datenmenge in die Datenbank eintragen. Diese Methode ist nützlich, wenn CachedUpdates den Wert True hat. Durch den Aufruf von ApplyUpdates werden die folgenden Schritte ausgeführt:
- Löst ein BeforeApplyUpdates-Ereignis aus.
- Ruft den Datenadapter auf, um SQL-Aktualisierungsanweisungen für jede Zeile zu generieren/verwenden und Änderungen in die Datenbank einzutragen.
- Löst ein AfterApplyUpdates-Ereignis aus.
- Ruft die Methode Reconcile der Datenmenge auf, um Fehler für alle Datensätze, die Fehler beim Schritt 2 auslösen, zu beheben.
- Wenn es keinen Fehler gibt, dann wird CommitUpdates für die Nachkommen von TFDCustomMemTable aufgerufen. Für die Nachkommen von TFDRdbmsDataSet (TFDQuery, TFDStoredProc, TFDTable usw.) sollten Reconcile und CommitUpdates explizit in der Anwendung aufgerufen werden.
AMaxErrors
gibt die maximale Anzahl von Fehlern an, die FireDAC vor dem vorzeitigen Abbruch der Aktualisierung zulassen soll. Setzen Sie AMaxErrors
auf –1, um anzugeben, dass es keine Beschränkung der Fehleranzahl gibt, oder auf 0, um anzugeben, dass kein Fehler zulässig ist.
ApplyUpdates gibt die Anzahl der gefundenen Fehler zurück. Auf Basis dieses Rückgabewerts und des erfolgreichen Setzens von AMaxErrors
werden eingetragene Aktualisierungen aus dem zentralisierten Änderungsprotokoll entfernt. Wenn der Aktualisierungsprozess vor dem Eintragen aller Aktualisierungen abgebrochen wird, verbleiben die Aktualisierungen, die nicht eingetragen wurden, in dem Änderungsprotokoll.
ApplyUpdates löst keine Exception aus. In der Anwendung sollten stattdessen fehlerhafte Datensätze mit der Funktion Reconcile und der Ereignisbehandlungsroutine für OnReconcileError oder den Eigenschaften FilterChanges und RowError überprüft werden. Weitere Einzelheiten finden Sie im Abschnitt "Überprüfen von Fehlern" unter Zwischenspeichern von Aktualisierungen.
Alle Änderungen werden in der Reihenfolge der Datenmengenänderungen eingetragen. Die erste Änderung (Einfügen/Aktualisieren/Löschen) wird zuerst eingetragen, während die letzte Änderung zuletzt eingetragen wird.
Beispiel
procedure TForm1.btnApplyClick(ASender: TObject);
begin
if FDStoredProc1.UpdatesPending then
FDStoredProc1.ApplyUpdates;
end;
Siehe auch
- Zwischenspeichern von Aktualisierungen (FireDAC)
- FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CancelUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CommitUpdates
- FireDAC.Comp.DataSet.TFDDataSet.RowError
- FireDAC.Comp.DataSet.TFDDataSet.FilterChanges
Beispiele
- FireDAC TFDQuery OnUpdateRecord (Beispiel)