Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Frage zu Transaktionen mit firebird (https://www.delphipraxis.net/150280-frage-zu-transaktionen-mit-firebird.html)

Steffen0917 12. Apr 2010 12:36

Datenbank: firebird • Zugriff über: IBDataSet

Frage zu Transaktionen mit firebird
 
Hallo,

in meiner Anwendung ist in der IBTransaction "nowait" gesetzt.
Greife ich nun auf einen Datensatz mit 2 Rechnern zu, kann der 2. Rechner den DS auch öffnen, erst beim Versuch zu speichern bekommt er die Meldung, dass ein konkurrierendes Update des DS gespeichert wurde.


Frage: Kann man dem 2. Anwender schon beim Anzeigen des DS mitteilen, dass er nur LESEN, aber nicht SPEICHERN kann ?

Gruß, Steffen

Blup 13. Apr 2010 07:29

Re: Frage zu Transaktionen mit firebird
 
Eigentlich nicht, das steht erst zum Zeitpunkt des Speicherns zweifelsfrei fest. Eine andere Transaktion, die diese Datensätze bearbeitet, könnte ja auch jederzeit starten oder immer noch vorher mit Rollback beendet werden.

Wenn der Benutzer versucht mit der Bearbeitung zu beginnen, die Daten durch ein Dummy-Update für andere sperren.
Schlägt dies fehl, bekommt der Benutzer eine Meldung und die Bearbeitung wird abgebrochen.

mkinzler 13. Apr 2010 07:43

Re: Frage zu Transaktionen mit firebird
 
SQL-Code:
SELECT ... FOR UPDATE WITH LOCK
http://www.ibphoenix.com/main.nfs?a=...p_lock_records


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 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