TurboDB Engine Dokumentation

Satzsperren

Top  Previous  Next

TurboDB sperrt automatisch den Datensatz, wenn ein Anwender mit dem Editieren beginnt. Das verhindert, dass zwei Anwender denselben Datensatz gleichzeitig bearbeiten. Die Sperre wird aufgehoben wenn der Anwender die Änderung bestätigt (Post) oder Rückgängig macht (Cancel) oder wenn er die Tabelle schließt.

Wenn ein Anwender einen gesperrten Datensatz editieren möchte, wird ein Fehler zurückgegeben und der Anwender kann den Datensatz nicht ändern. Die meisten Komponenten-Bibliotheken (z.B VCL/CLX) werfen eine Exception falls der Fehler auftritt.

In TurboDB können Satzsperren neben Tabellensperren auftreten. Es ist möglich, dass ein Anwender beginnt einen Datensatz zu editieren und ein zweiter führt ein Update Statement auf die Tabelle aus, bevor der erste Anwender seine Änderung geschrieben hat. Das geht gut, solange das Update nicht den gesperrten Datensatz tangiert. Falls es das tut, wird das Update scheitern. In beiden Fällen kann der editierende Anwender die durchgeführten Änderungen schreiben.

Für einige Anwendungen mit sehr vielen Usern in einem losen Netzwerk (z.B. Web-Anwendungen), ist es keine gute Idee Datensatzsperren aufrechtzuerhalten während der Anwender den Satz editiert. In diesem Fall sollte ein unverbundenes Datenzugriffsmodell bevorzugt werden.