Einzelnen Beitrag anzeigen

SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Datensatzsperre mit Access

  Alt 2. Feb 2011, 12:33
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hi, ich habe ein mittelschweres Problem und komme nicht dahinter. Ich muss an einer bestehenden Anwendung eine Änderung vornehmen. Die Anwendung benutzt eine Access-Datenbank, die im Netzwerk abgelegt ist. Für eine spezielle Funktion muss ich in einer Tabelle einen Datensatz sperren, bzw. muss prüfen können, ob der Datensatz schon von einem anderen Client gesperrt ist. Ich bekomme es einfach nicht hin.
Ich habe mit allen möglich Einstellungen der ADO Komponente gespielt, allerdings ohne ein Ergebnis.
Delphi-Quellcode:
.CursorLocation := clServer
.Cursortype := ctStatic
.CommandType := ctTableDirect
.LockType := ltPessimistic
Also, der Client 1 soll diesen bestimmten Datensatz sperren, diesen Datensatz aktualisieren und dann die Sperre wieder aufheben. Das dauert vielleicht 50ms, also ganz kurz.
Wenn der Client 2 das selbe macht, dann muss ich irgendwie feststellen können, ob der Datensatz gesperrt ist oder nicht. Falls er gesperrt ist, dann muss das Programm einen kurzen Moment warten und dann noch mal probieren, damit ich den aktuellen Wert auslesen kann.

Kann mir jemand helfen, wie ich das anstellen kann?

Edit: Ich habe schon hier im Forum gesucht und alles was ich gefunden habe, hat mir nicht geholfen. Im Web steht dann auch nur mit TableDirect und Pessimistic locking, aber anscheinend bin ich zu doof.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.

Geändert von SvB ( 2. Feb 2011 um 12:34 Uhr) Grund: Was vergessen.
  Mit Zitat antworten Zitat