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.