![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBX
Firebird Transaction lange offen
Hallo
Ich wollte mal fragen, mit welchen Parametern ist es sinnvoll eine Transaktion zu starten die nur lesen ist, aber dafür sehr lange offen sein kann. Speziell für Auswertungen eben (Reports, Pivot usw) Ich möchte damit eben mein System nicht verlangsamen, meine schreibenden und sonstigen Transactionen sind immer extrem kurz, nur eben diese können teils auch mal tage offen beleiben (sollte nicht sein, aber es kann passieren) Zugriff ist noch per IBX besten danke |
AW: Firebird Transaction lange offen
Warum muss dann die Transaktion tagelang offen bleiben?
|
AW: Firebird Transaction lange offen
müssen nicht aber es passiert halt
Das sind zum teil fremdkomponenten die auf die Datenbank zugreifen, und eben die Daten direkt aus der TIBQuery auslesen, und es muss bei IBX die Transaktion offen bleiben, sonst sind ja die Daten weg. Daher müsste ich entweder eine zwischenschicht einführen, die die daten kopiert, oder die Komponente müsste sich die Daten selber kopieren. Es handelt sich hier im Report Builder, und eine Pivot Komponente - und wenn der user eben die Fenster offen lässt bleibt auch die Transaktion offen. |
AW: Firebird Transaction lange offen
Ich vermute stark, du verwechselst hier was: Nicht die
![]() 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. |
AW: Firebird Transaction lange offen
Die Antwort lautet :
Firebird hat dafür die "Read Only" Transaction ![]() ![]() mfg Hannes |
AW: Firebird Transaction lange offen
Ich würde die Daten clientseitig cachen.
|
AW: Firebird Transaction lange offen
Zitat:
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 |
AW: Firebird Transaction lange offen
Mit einem Clientdataset o.ä. sollte das kein Problem sein.
|
AW: Firebird Transaction lange offen
Zitat:
Zitat:
|
AW: Firebird Transaction lange offen
Zitat:
Code:
ja meine wenn ich die TIBTransaktion.Active auf False setzte bzw. mit einem Transaction.Commit oder so, wenn ich ein CommitRetaining mache, dann bleiben daten erhalten, aber die Transaktion auch offen
SELECT * FROM MON$TRANSACTIONS
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 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