![]() |
Datenbank: FB • Version: 2.1 • Zugriff über: IBExpress
Firebird, Queries und Transaktionen [IBExpress]
Hi
Ich verstehe das mit den Queries und Transaktionen nicht. Ich will z.B. daten aus einer Tabelle lesen, irgendwie verwursten und dann die Tabelle wieder schließen. Manchmal klappt das so:
Delphi-Quellcode:
aber manchmal eben nicht. Dann ist eine Transaktion schon aktiv. Vielleicht, weil ich 2 Timer habe, die unabhängig voneinander aus der DB lesen?
begin
myIBquery.Transaction.StartTransaction; try myIBquery.Active := True; ProcessData(myIBQuery); myIBquery.Active := False; finally myIBquery.Transaction.Rollback; end; end; Wie mach ich das nu richtig? Pro Timer eine eigene Transaktion? Überhaupt nicht so wie oben, oder wie? Bin echt verwirrt. |
AW: Firebird, Queries und Transaktionen [IBExpress]
Hallo,
du hast schon alles richtig verstanden. Pro Timer eine eigene Transaktion? ist die Lösung. Oder du synchronisiert deine "ProcessData" (Warteschlangen-Prinzip). Heiko |
AW: Firebird, Queries und Transaktionen [IBExpress]
Firebird ist zwar in der Lage intern ein Rollback auf ein Commit umzuwandeln wenn möglich, aber ich würde im eigenen Code immer Commit anstatt von Rollback verwenden, wenn es eben geht.
Des Weiteren würde ich gezielt Read-Only Transaktionen verwenden, wenn du nur liest, da Read-Only Transaktionen weniger Overhead erzeugen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz