Hallo Martin
Zitat von
mschaefer:
Welcher Isolationlevel wird verwendet?
Grüße // Martin
Na, ob ich das beantworten kann?
1. Leider arbeiten wir ohne Transactionen, womit das ein oder andere Sperrenproblem erst garnicht auftauchen würde.
2. Die Datenbank erlaubt Dirty Read auf gesperrte Datensätze.
Also ein Select ist immer möglich.
3. In der 4GL-Sprache nutzten wir deswegen Update-Cursor, welche restriktiver sind und kein dirtyread erlauben und einen Datensatz generell erst versuchen zu sperren. Wird dieser bearbeitet, erfolgt die Fehlermeldung ist bereits gesperrt! Und ein FETCH auf den Cursor wirft einen Fehler
.
4. Die
BDE bietet mir diese Möglichkeit leider nicht. (Glaube ich zumindest).
Nutze ich z.B. ein TTable-Objekt, kann ich ersteinmal die Daten eines gesperrten Satzes ändern. Mit dem folgenden verhalten:
a. Bei einem Post wird dann geprüft, ob sich in der Zwischenzeit die Daten durch einen anderen User geändert haben.
Fehlermeldung: Daten wurden geändert, speichern ist nicht möglich..
b. Oder wie der Fall hier. Gibt die Datenbank an sich den Fehler zurück: Datensatz gesperrt. Die
BDE, scheint mir bekommt das garnicht mit!
Es bleibt mir also nichts anderes als mich selber darum zu kümmern. Das
DBMS in Verbindung mit der
BDE ist mir da wohl keine Hilfe.