Einzelnen Beitrag anzeigen

Ackerjan

Registriert seit: 4. Jun 2007
Ort: Potsdam
17 Beiträge
 
Delphi 2009 Enterprise
 
#15

Re: Prüfe vor Post, ob der Datensatz gesperrt ist

  Alt 26. Aug 2008, 12:19
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.
Jan
Niemals aufgeben, niemals kapitulieren! - galaxy quest
  Mit Zitat antworten Zitat