Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#11

Re: Interbase Update sperren realisierem

  Alt 31. Dez 2008, 09:19
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.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat