Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi IBDatabase + FB1.5 - Aktualisierung Daten (https://www.delphipraxis.net/89927-ibdatabase-fb1-5-aktualisierung-daten.html)

mischerr 8. Apr 2007 19:52

Datenbank: Firebird • Version: 1.5 • Zugriff über: IBExpress

IBDatabase + FB1.5 - Aktualisierung Daten
 
Hallo!

Ich kämpfe gerade mal wieder mit IBExpress und Firebird.
Folgende Situation:

3 Rechner:
- Server mit FB1.5
- 2x Client mit identischer Anwendung unter XP

Anwendung:
1x IBDatabase mit DefaultTransaction 1x IBTransaction
(eigentlich brauche ich gar keine Transaction, aber ohne gehts wohl nicht)

Anwendung 1 bearbeitet Daten in einer Tabelle. Nach dem Bearbeiten wird ein CommitRetaining aufgerufen und die Daten in der DB sind uptodate. (Habs mit nem SQLManager verifiziert)

Ruft die Anwendung 1 nun diesen Datansatz wieder auf, ist alles ok.

Ruft aber Anwendung 2 diesen Datensatz auf, so liefert ein SQL-Select den *alten* Datensatz - sprich, den Status vor der Änderung durch Anwendung 1, was natürlich überhaupt nicht erwünscht ist! :pale: Wird Anwendung 2 beendet und neu gestartet, bekommt sie die neuen Daten. Ich vermute daher, dass es irgendwie an der DefaultTransaction liegt. :wall:

Das Verhalten liegt nicht am PC, da das Verhalten bei beiden Rechnern identisch ist, egal wer ändert.


Also: Wie bekomme ich die Daten refresht? :gruebel:


Bin im Moment etwas ratlos...

Gruss,
Michael

Hansa 8. Apr 2007 20:15

Re: IBDatabase + FB1.5 - Aktualisierung Daten
 
verwende COMMIT und nicht COMMITRETAINING.

mischerr 8. Apr 2007 20:59

Re: IBDatabase + FB1.5 - Aktualisierung Daten
 
Danke, geht!

Aber lässt sich auch irgendwie verhindern, dass durch das Schliessen des Transaktionskontexts (per Commit) eine Query, die über das selbe IBDatabase-Object verbunden ist und eine Sub-Datenmenge anzeigt, automatisch geschlossen wird?

Klar, ich kann die Query neu öffnen, aber würde es wenn möglich gerne vermeiden.

MrSpock 8. Apr 2007 21:04

Re: IBDatabase + FB1.5 - Aktualisierung Daten
 
Hallo,
du benötigst schon Transaktionen, nicht nur, weil das System das so will, sondern, weil du genau dort festlegst, was mit bereits commiteten Datensätzen passieren soll.

Mache mal einen Doppelklick auf die Transaktion der Anwendung 2 und wähle dort "Commited lesen". Standardmäßig ist snapshot gewählt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz