Einzelnen Beitrag anzeigen

Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Firebird Transaction lange offen

  Alt 7. Okt 2015, 08:07
Ich vermute stark, du verwechselst hier was: Nicht die Transaktion bleibt offen, sondern das Query bleibt aktiv (Active = True). Die Transaktion kann gar nicht offenbleiben, nachdem die Daten via select von der Datenbank angefordert wurden und eingetroffen sind. Wäre die Transaktion noch offen, würde der Select-Befehl noch auf seine Ausführung warten.

Eine Query- oder Table-Komponente muß aktiv bleiben, solange die Daten angezeigt oder sonstwie verarbeitet werden sollen. Anders ausgedrückt: Wenn das Property Active der Datenmenge nicht mehr den Status True aufweist, besteht keine Möglichkeit, die Datenmenge zu verarbeiten. Erst das Setzen von Active auf True bzw. der Open-Befehl führt den Select-Befehl aus und beendet damit die Transaktion.
Meines wissens nicht

denn ich habe ja ne TIBQuery und ne TIBTransaction, und sobald ich die TIBTransaction schleiße sind auch die daten aller zugehörigen IBQuerys oder IBTables weg.
Und auch am Firebird Server kann ich mir ja die offenen Transaction anschauen und sehe, das es eigentlich so ist.

@mkinzler
Ja Clientseitig cachen ist ne möglichkeit, und mache ich bei meinen eigenen Sachen auch, nur für die Drittanbieter Software wird es halt um einige schwieriger, und aufwändiger, und ich erhoffte mir eine schneller und fast genau so gute lösung.

@hstreicher
Aber wenn eine Transaction READ ONLY ist, dann beudetet das ja nicht, das die Records nicht trotzdem Versioniert werden müssen solange die Transaction offen ist oder?
eventuell eine kombination mit READ COMMITTED oder [NO] RECORD_VERSION

nur ich will auf keinen Fall etwas verschlimmbessern
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat