Share via


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