UNLOCK (Comando)
Libera un bloqueo de registro, bloqueos de varios registros o un bloqueo de archivo desde una tabla, o libera todos los bloqueos de registros y de archivos de todas las tablas abiertas.
UNLOCK [RECORD nRecordNumber] [IN nWorkArea | cTableAlias] [ALL]
Parámetros
RECORD nRecordNumber
Libera el bloqueo del registro con el número de registro nRecordNumber. Puede especificar 0 en nRecordNumber para desbloquear un encabezado de tabla bloqueado previamente con LOCK(0) o con RLOCK(0).Al ejecutar UNLOCK RECORD nRecordNumber para un registro bloqueado de una tabla, se libera el bloqueo del registro.
IN nWorkArea | cTableAlias
Libera uno o varios bloqueos de registro, o un bloqueo de archivo de una tabla en un área de trabajo específica. nWorkArea indica un número de área de trabajo y cTableAlias indica un alias de tabla. Si no incluye nWorkArea o cTableAlias, UNLOCK libera el bloqueo o los bloqueos de un registro, o el bloqueo de archivo de la tabla del área de trabajo seleccionada actualmente.ALL
Libera todos los bloqueos de registro y de archivo de todas las áreas de trabajo.Para obtener más información acerca del bloqueo de registros y archivos, así como del uso compartido de tablas en una red, vea Programar para acceso compartido.
Observaciones
Sólo el usuario que ejecutó el bloqueo puede eliminar los bloqueos de registro y de archivo de una tabla. UNLOCK no puede desbloquear una tabla abierta para uso exclusivo.
Si ejecuta UNLOCK sin argumentos, se liberarán de la tabla del área de trabajo actual uno o varios bloqueos de un registro, o un bloqueo de archivo.
Si están establecidas relaciones entre tablas, al liberar un bloqueo (o bloqueos) de registro o un bloqueo de archivo de una de las tablas no se liberarán los bloqueos de los registros o archivos relacionados. Debe liberar los bloqueos de registro o archivo de forma explícita en cada uno de los archivos relacionados. Puede liberar todos los bloqueos en las tablas relacionadas ejecutando UNLOCK ALL (esto también libera los registros en los archivos no relacionados).
Ejemplo
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
Vea también
FLOCK( ) | LOCK( ) | RLOCK( ) | Programar para acceso compartido