TurboDB Engine Dokumentation

Tabellensperren

Siehe auch

Previous  Top  Next

TurboDB Engine arbeitet mit zwei verschiedenen Arten von Tabellensperren:

Eine Lesesperre (shared lock) hält andere Anwendungen vom Schreiben in die Tabelle ab. Lesesperren garantieren eine konsistente Datenbanktabelle während einer Abfolge von Leseoperationen, z.B. beim Erstellen eines Index. Es können mehrere Anwendungen gleichzeitig eine Lesesperre für eine Tabelle setzen.

Eine Schreibsperre (exclusive lock) verhindert jeden Zugriff einer anderen Anwendung auf die Tabelle. Schreibsperren werden für verschiedene Schreiboperationen benötigt, z.B. das Ändern der Tabellenstruktur. Nur jeweils eine Anwendung kann eine Schreibsperre für eine Tabelle definieren.

Eine TurboDB Tabelle kann auch exklusiv geöffnet werden. In diesem Modus wird auch die zugrundeliegende Datenbankdatei exklusiv geöffnet, was jeder anderen Anwendung unmöglich macht auf die Datei zuzugreifen. Eine Tabelle exklusiv zu öffnen ist einer Schreibsperre ähnlich, mit einigen wesentlichen Unterschieden:

Schreibsperren werden von TurboDB verwaltet, der exklusive Modus dagegen vom Betriebssystem.
Schreibsperren können auf eine bereits geöffnete Tabelle angewendet werden. Der exklusive Modus kann nur vor dem Öffnen der Tabelle gesetzt werden.

Anmerkung

Bei der Arbeit mit den TurboDB VCL Komponenten werden Sie bemerken, dass Lesesperren als write locks und Schreibsperren als total locks bezeichnet werden. Der Grund ist, dass die BDE die Sperrentypen durcheinander bringt und wir versuchen halbwegs kompatibel zu sein.