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.