Einzelnen Beitrag anzeigen

Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#1

Transaction auf Änderungen überprüfen

  Alt 5. Dez 2012, 14:41
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Zuerst mal: Ich habe eine Connection, eine Transaction, diverse Queries, DataSources, DBGrids und DBEdits.

Ich möchte dem Anwender jetzt die Möglichkeit geben, Änderungen an allen Daten durchführen zu können.
Die Änderungen sollen aber noch nicht sofort in die Datenbank geschrieben werden, sondern erst per Knopfdruck.

Beim Speichern führe ich einfach ein Commit der Transaction aus und alle Daten sind gespeichert.
Führe ich das Commit nicht aus (z.B. weil ich das Fenster einfach schließe) sind die Änderungen verworfen (automatisches Rollback).

Jetzt ist es so, dass der Speichern-Button (der mit einer TAction verknüpft ist), immer aktiv ist. Er ist also auch aktiv, wenn überhaupt keine Änderung durchgeführt wurde.

Gibt es einen sauberen Weg, den Button / die Action nur zu aktivieren, wenn sich auch wirklich etwas an den Daten geändert hat (Update / Insert)? Also quasi eine "Ist die Transaction dirty?"-Abfrage
Oder muss ich jedes DataSet überwachen und ein Boolean-Feld "FDataModified" einführen?
  Mit Zitat antworten Zitat