Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Fibplus Problem mit Transaction

  Alt 1. Nov 2007, 15:08
Datenbank: Firebird • Zugriff über: Fibplus
Hallo,
ich stehe gerade mit Fibplus auf dem Schlauch, vielleicht hat ja wer einen Tip.

In einem TDatamodule habe ich zwei TpFIBDatabase, welche mit völlig unterschiedlichen Datenbanken verbunden sind.

Datenbank A und Datenbank B

Mit dem pFIBDatabase für Datenbank B verbinde ich zur Laufzeit ein TDataset und zeige ein Grid an.
Eine Transaction ist verbunden und wird explizit mit Starttransaction/Commit gesteuert.
Das funktioniert.

Jetzt erzeuge ich zur Laufzeit 2 neue Transactionen und verbinde diese mit der Datenbank A.
Der verwendete Code :

Delphi-Quellcode:
 
  Query := TpFIBDataset.Create(nil); { Temporäres Query über die Lebenszeit des Unit }
  Queryint := TpFIBQuery.Create(nil);

  Connection := IbConnection;

  Transaction := TpFIBTransaction.Create(nil);
  Transaction1 := TpFIBTransaction.Create(nil);
  Transaction.DefaultDatabase := Connection; // default Transaction.TPBMode := tpbReadCommitted
  Transaction1.DefaultDatabase := Connection;

  Query.Database := Connection;
  Query.Transaction := Transaction;

  Queryint.Database := Connection;
  Queryint.Transaction := Transaction1;
IBConnection ist in diesem Fall TpFIBDatabase der Datenbank A.

Öffne ich jetzt eine der beiden Transactionen und schließe sie mit Commit wieder, dann
funktioniert der oben beschriebene Ablauf für Datenbank B nicht mehr.
Beim Versuch das Dataset zu öffnen kommt die Fehlermeldung Transaction active.
Im Quellcode wird der Fehler beim Versuch eine interne TRansaction zu öffnen, verursacht.

Hat wer einen Tip, wie ich das Problem in den Griff bekomme?

Mit Gruß
Peter
  Mit Zitat antworten Zitat