Einzelnen Beitrag anzeigen

spechto

Registriert seit: 20. Jun 2009
28 Beiträge
 
Delphi 2007 Professional
 
#1

FIBPlus Transaktions-Problem

  Alt 20. Jun 2009, 01:13
Datenbank: Firebird • Version: 2 • Zugriff über: FIBPlus 6
Hallo zusammen,

ich bastele gerade an einer kleinen Anwendung, in der ich ein Fenster mit einem DBGrid habe. Das DBGrid bezieht die Daten aus einem FIBDataset (ReadTransaction, read-only). Nun soll bei einem Doppelklick auf eine Zeile ein Detail-Fenster aufgehen, in dem die Daten bearbeitet werden können. Also übergebe ich dem Detail-Formular die FIBDataset-Komponente in einem Property und nutzte für die Transaktion die WriteTransaction des FIBDataset. So funktioniert das Ganze auch wunderbar.

Nun möchte ich, dass mehrere Instanzen vom Detail-Fenster möglich sind. Leider bekomme ich nun Probleme hinsichtlich des Transaktionskontexts. Wenn im Detail-Fenster die Transaktion gestartet wird und beim Schliessen des Fensters beendet wird, gibt es natürlich Probleme beim Schliessen der nächsten Instanz, da die Transaktion ja bereits beendet wurde.

Wie kann ich dieses Problem am besten (oder besser am saubersten) umgehen? Eine Idee wäre es, zu prüfen, ob die Transaktion bereits läuft und statt eines Hard-Commit einfach CommitRetaining zu nutzen. Das Hard-Commit müsste dann von der ersten Formular-Instanz ausgeführt werden.
Ist das die richtige Richtung, in die ich da Denke oder liege ich mal wieder voll daneben?
Die Write-Transaction wird dadurch natürlich unter Umständen recht lang ...

Vielen Dank
Martin
  Mit Zitat antworten Zitat