Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Interbase Update sperren realisierem (https://www.delphipraxis.net/40855-interbase-update-sperren-realisierem.html)

mjustin 31. Dez 2008 09:19

Re: Interbase Update sperren realisierem
 
Zitat:

Zitat von mschaefer
Moin, moin,

Wenn man da ein Grid hat gibt es banal Zeilen die sind nicht zu ändern und andere eben doch.

Es da ganz einfach so, dass Datensätze die in Bearbeitung nur zum lesen für andere im Zugriff sind. Man kann nicht in den Editmodus gehen. Das scheint mir auch sinnvoll, denn wenn der zweite Nutze erst am Ende seiner Eingaben erfährt, dass er sie nicht speichern kann, dann hat er da banal Zeit reingesteckt und eventuell auch Daten verloren.

Grüße // Martin

FireBird kennt eine SELECT ... WITH LOCK Klausel für das pessimistische Locking von Datensätzen:

[Understanding the WITH LOCK clause]
http://www.firebirdsql.org/refdocs/l...-withlock.html

Der zweite Benutzer hat im Prinzip auch bei Verwendung dieser Option seine Daten 'verloren', falls er sie nicht anders speichert, z.B. auf einem Zettel ;-)

Man kann aber zu Beginn der Bearbeitung ein Dummy-Update versuchen, und so sofort (anhand der Exception) erkennen, dass der Satz in Bearbeitung ist, z.B. ein UPDATE FOO SET LAST_MODIFIED=CURRENT_TIMESTAMP WHERE ID=:ID Wenn keine Exception auftritt, darf die Anwendung in den Edit-Modus gehen, die Eingaben sind gegen Verlust sicher.

mkinzler 31. Dez 2008 11:19

Re: Interbase Update sperren realisierem
 
In den meissten Fällen macht MGA bei FireBird explizite Sperren unnötig. Manchmal benötigt man diese aber doch, deshalb wurde der explizite Lock in FB 1.5 eingeführt.

mschaefer 31. Dez 2008 11:40

Re: Interbase Update sperren realisierem
 
Ja der Bedarf ist schon da. Wieso es aber nicht mit einer Select-Anweisung möglich ist nach aktuell gesperrten Sätzen zu suchen, das ist mir irgendwie ein Rätsel. Bei einem Dummy-Update muß ich jedesmal noch Daten senden um die Mitteilung zu bekommen geht nicht. Eigentlich fehlt mir sogar noch was mehr. Ein Hinweis Du ich habe den Datensatz bis in 5 Minuten in Bearbeitung, lass mich solange in Ruhe. So eine Art Buchleihe System wie in der Bibliothek, wo man eventuell sogar verlängern kann oder man muß den Record rausrücken, wenn er angefordert ist. Da muß man wohl doch was eigenes bauen..

Grüße // Martin

mkinzler 31. Dez 2008 11:51

Re: Interbase Update sperren realisierem
 
Sowas könnte vielliecht mit Hilfe der Monitoring Erweiterungen von FireBird 2.1/2.5 möglich sein
http://blog.upscene.com/thomas/index...y080730-135908

mschaefer 31. Dez 2008 12:20

Re: Interbase Update sperren realisierem
 
Ja das könnte mal interessant werden. Bis dahin muß ich mich doch mal um eine eigene TQuery kümmern...

Einen guten Sekt ins neue Jahr // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.
Seite 2 von 2     12   

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