UNLOCK-Befehl

Hebt eine Datensatzsperre, mehrere Datensatzsperren oder eine Dateisperre einer Tabelle oder alle Datensatzsperren und Dateisperren aller geöffneten Tabellen auf.

UNLOCK    [RECORD nRecordNumber]   [IN nWorkArea | cTableAlias]   [ALL]

Parameter

  • RECORD nRecordNumber
    Hebt die Datensatzsperre für den Datensatz mit der Nummer nRecordNumber auf. Sie können 0 als nRecordNumber angeben, wenn Sie einen mit LOCK(0) oder RLOCK(0) gesperrten Tabellenkopf freigeben möchten.

    Wenn Sie UNLOCK RECORD nRecordNumber für einen Datensatz einer Tabelle mit einer Dateisperre eingeben, wird die Dateisperre aufgehoben.

  • IN nWorkArea | cTableAlias
    Hebt Datensatzsperre(n) oder eine Dateisperre einer Tabelle in einem bestimmten Arbeitsbereich auf. nWorkArea gibt eine Arbeitsbereichnummer und cTableAlias einen Tabellenalias an. Wenn Sie nWorkArea oder cTableAlias nicht angeben, hebt UNLOCK eine oder mehrere Datensatzsperren oder die Dateisperre für die Tabelle im aktuell ausgewählten Arbeitsbereich auf.

  • ALL
    Hebt alle Datensatz- und Dateisperren in allen Arbeitsbereichen auf.

    Weitere Informationen zum Sperren von Datensätzen und Dateien sowie zum Freigeben von Tabellen in einem Netzwerk finden Sie unter Programmieren für gemeinsamen Zugriff.

Hinweise

Datensatz- und Dateisperren einer Tabelle können nur von dem Benutzer aufgehoben werden, der diese Sperren eingerichtet hat. UNLOCK kann keine Tabelle freigeben, die im exklusiven Modus geöffnet ist.

Wenn Sie UNLOCK ohne weitere Argumente verwenden, wird die Sperre für ein oder mehrere Datensätze oder eine Datei in der Tabelle im aktuell gewählten Arbeitsbereich aufgehoben.

Wenn Beziehungen zwischen Tabellen bestehen, führt das Aufheben von Datensatzsperre(n) oder einer Dateisperre von einer der Tabellen nicht dazu, dass Sperren der anderen zu den Beziehungen gehörenden Datensätze oder Dateien aufgehoben werden. Sie müssen die Datensatz- oder Dateisperren in jeder der beteiligten Dateien ausdrücklich aufheben. Sie können alle Sperren für alle beteiligten Tabellen aufheben, indem Sie UNLOCK ALL eingeben (dieser Befehl hebt auch Sperren in Dateien auf, die an keiner Beziehung beteiligt sind).

Beispiel

CLOSE DATABASES
SET REPROCESS TO 3 AUTOMATIC
STORE '1,2,3,4' TO gcRecList     && Lock records 1 through 4
gcOldExc = SET('EXCLUSIVE')     && Save the EXCLUSIVE setting
SET EXCLUSIVE OFF  && Allow sharing of tables

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer  && Opens Customer table
SELECT 0
USE employee  && Opens Employee table

? LOCK('1,2,3,4', 'customer')  && Lock the first 4 records in customer
? RLOCK(gcRecList, 'employee') && Lock the first 4 records in employee

UNLOCK IN customer
UNLOCK IN employee
SET EXCLUSIVE &gcOldExc  && Restore original EXCLUSIVE setting

Siehe auch

FLOCK( ) | LOCK( ) | RLOCK( ) | Programmieren für gemeinsamen Zugriff