<< | Inhaltsverzeichnis | Suchen | >> |
Anweisung
Syntax: |
NOHOLDLOCK
<INDEXDATEI> oder |
Bedeutung: |
Wird NOHOLDLOCK für eine Indexdatei eingeschaltet, so wird im Multi-User-Betrieb jeder gelesene Datensatz sofort nach dem Lesen wieder freigegeben. Intern wird der aktuelle Inhalt des Datensatzes aber gespeichert. Wird der Satz später zurückgeschrieben oder gelöscht, so wird er intern zuerst noch einmal gelesen. Wurde er inzwischen gelöscht, so wird der Fehler 1065/927 geliefert. Ist der Datensatz noch vorhanden, so wird er mit dem zwischengespeicherten Datensatz verglichen. Wurde er inzwischen verändert, wird der Fehler 1065/926 geliefert, andernfalls wird die Schreib- bzw. Löschoperation ausgeführt. |
|
Der Vorteil von NOHOLDLOCK ist, daß Datensätze immer nur ganz kurzzeitig gesperrt werden und damit keine Verklemmungen (Deadlocks) und Behinderungen entstehen können. Der Nachteil ist, daß das Zurückschreiben oder Löschen eines Datensatzes dann nicht ausgeführt wird, wenn der Datensatz inzwischen geändert wurde. |
|
NOHOLDLOCK hat keine Wirkung, wenn für die betreffende Indexdatei NOREADLOCK oder NOUNLOCK aktiviert wurde. Bei NOREADLOCK bzw. DISABLE READLOCK werden die Datensätze sowieso nicht gesperrt, bei NOUNLOCK müssen sie gesperrt bleiben bis zum Befehl UNLOCK. |
|
NOHOLDLOCK ALL schaltet diese Art des Record-Lockings für alle Indexdateien ein. |
|
|
|
Achtung: NOHOLDLOCK ist bei Programmbeginn für alle Indexdateien voreingestellt. |
|
|
Beispiel: |
NOHOLDLOCK KUNDEN |
siehe auch: |