Geänderte Daten in die Datenbank zurückschreiben

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Daten ändern


Nach der Bearbeitung eines Datensatzes müssen die Änderungen durch Aufrufen der Methode Post in die Datenbank zurückgeschrieben werden. Die Methode Post funktioniert unterschiedlich, je nachdem, in welchem Status sich die Datenmenge befindet, und ob die Aktualisierungen im Cache zwischengespeichert werden.

  • Wenn die Änderungen nicht im Cache zwischengespeichert werden und die Datenmenge sich im Status dsEdit oder dsInsert befindet, schreibt Post den aktuellen Datensatz in die Datenbank zurück und versetzt die Datenmenge wieder in den Status dsBrowse.
  • Wenn die Änderungen im Cache zwischengespeichert werden und die Datenmenge sich im Status dsEdit oder dsInsert befindet, schreibt Post den aktuellen Datensatz in einen internen Cache und versetzt die Datenmenge wieder in den Status dsBrowse zurück. Die Änderungen werden erst in die Datenbank zurückgeschrieben, wenn die Methode ApplyUpdates aufgerufen wird.
  • Befindet sich die Datenmenge im Status dsSetKey, wird sie durch das Aufrufen von Post in den Status dsBrowse zurückversetzt.

Unabhängig vom ursprünglichen Status der Datenmenge generiert die Methode Post Ereignisse vom Typ BeforePost und AfterPost, bevor und nachdem die aktuellen Änderungen in die Datenbank geschrieben werden. Diese Ereignisse können verwendet werden, um die Benutzeroberfläche zu aktualisieren. Es ist auch möglich, durch Aufruf der Prozedur Abort das Zurückschreiben der Änderungen in die Datenbank zu verhindern. Wenn beim Aufruf der Methode Post ein Fehler auftritt, empfängt die Datenmenge ein Ereignis vom Typ OnPostError. Mit diesem können Sie den Benutzer über das Problem informieren oder versuchen, den Fehler zu bereinigen

Der Aufruf der Methode Post kann explizit oder implizit als Teil einer anderen Prozedur erfolgen. Wenn eine Anwendung den aktuellen Datensatz wechselt, wird Post implizit aufgerufen. Aufrufe von First, Next, Prior und Last führen automatisch zu einem Aufruf von Post, wenn sich die Tabelle im Modus dsEdit oder dsInsert befindet. Die Methoden Append und Insert speichern anstehende Änderungen ebenfalls implizit.

Warnung:  Die Methode Close führt nicht zum impliziten Aufruf von Post. Mit dem Ereignis DB.BeforeClose speichern Sie anstehende Änderungen explizit.

Siehe auch