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