Освобождает блокированную запись, множество блокированных записей или файл блокированной таблицы, или освобождает все записи, или файл, блокирующий все открытые таблицы.
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.
Замечания
Блокированные записи и файлы могут быть удалены из таблицы только пользователем, который установил блокировку. UNLOCK не может разблокировать таблицу, открытую эксклюзивно.
Блокированная запись (или locks) или блокированный файл освобождаются в таблице в текущей рабочей области, если вы используете UNLOCK без дополнительных аргументов.
Если отношения установлены между таблицами, освобождение блокированной записи (или locks) или блокированного файла одной из таблиц, не будут разблокированы связанные с ним записи или файлы. Вы должны явно освободить запись или блокированный файл в каждом из связанных файлов. Вы можете освободить все блокировки в любой связанной таблице, используя UNLOCK ALL (Это также освобождает записи в несвязанных файлах).
Пример
![]() | |
---|---|
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 |