Освобождает блокированную запись, множество блокированных записей или файл блокированной таблицы, или освобождает все записи, или файл, блокирующий все открытые таблицы.

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

Параметры

RECORD nRecordNumber

Освобождает блокированную запись с номером записи nRecordNumber. Вы можете определить 0 для nRecordNumber, чтобы разблокировать заголовок таблицы, заблокированной ("0", <alias>) или RLOCK("0", <alias>).

Использование UNLOCK RECORD nRecordNumber для записи в таблице блокированного файла освобождает блокированный файл.

IN nWorkArea | cTableAlias

Освобождает блокированную запись (или locks) или блокированный файл таблицы в определенной рабочей области. nWorkArea определяет номер рабочей области и cTableAlias определяет псевдоним таблицы. Если вы не включаете nWorkArea или cTableAlias, UNLOCK освобождает блокированную запись (или locks) или блокированный файл в текущей выбранной рабочей области.

ALL

Освобождает все записи и блокированные файлы во всех рабочих областях.

Более подробно и блокировке записей и файлов и коллективном использовании таблиц в сети, смотрите Programming for Shared Access.

Expand imageЗамечания

Блокированные записи и файлы могут быть удалены из таблицы только пользователем, который установил блокировку. UNLOCK не может разблокировать таблицу, открытую эксклюзивно.

Блокированная запись (или locks) или блокированный файл освобождаются в таблице в текущей рабочей области, если вы используете UNLOCK без дополнительных аргументов.

Если отношения установлены между таблицами, освобождение блокированной записи (или locks) или блокированного файла одной из таблиц, не будут разблокированы связанные с ним записи или файлы. Вы должны явно освободить запись или блокированный файл в каждом из связанных файлов. Вы можете освободить все блокировки в любой связанной таблице, используя UNLOCK ALL (Это также освобождает записи в несвязанных файлах).

Expand imageПример

  CopyCode imageCopy Code
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

Expand imageСмотрите также