Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
SET QUERY AND LOCK
|
SET QUERY AND LOCK ( bloq ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
bloq | Booleano |
![]() |
True = bloquear los registros encontrados por las búsquedas False = No bloquear registros | |||||
El comando SET QUERY AND LOCK permite solicitar el bloqueo automático de los registros encontrados por todas las búsquedas que siguen el llamado de este comando en la transacción actual. Esto significa que los registros no pueden ser modificados por un proceso diferente al proceso actual entre una búsqueda y la manipulación de resultados.
Por defecto, los registros encontrados por las búsquedas no están bloqueados. Pase True en el parámetro bloq para activar el bloqueo.
Este comando debe imperativamente utilizarse al interior de una transacción. Si se llama fuera de este contexto, se genera un error. Esto permite un mejor control del bloqueo de registros. Los registros encontrados permanecerán bloqueados hasta que la transacción termine (validada o cancelada). Después de que la transacción se completa, todos los registros se desbloquean, excepto el registro actual.
Los registros están bloqueados para todas las tablas en la transacción actual.
Cuando una instrucción SET QUERY AND LOCK(True) ha sido ejecutada, los comandos de búsqueda (por ejemplo QUERY) adoptan un funcionamiento específico si se encuentra un registro bloqueado:
Llame SET QUERY AND LOCK (False) con el fin de desactivar el mecanismo posteriormente.
SET QUERY AND LOCK modifica únicamente el comportamiento de los comandos de búsqueda en otras palabras:
Sin embargo, SET QUERY AND LOCK no afecta los otros comandos que modifican la selección actual tales como #cmd id="47"/], RELATE MANY, etc.
En este ejemplo, no es posible borrar un cliente que habrías sido pasado de la categoría “C” a la categoría “A” en otro proceso entre QUERY y DELETE SELECTION:
START TRANSACTION
SET QUERY AND LOCK(True)
QUERY([Clientes];[Clientes]Categoria=C)
`En este momento, los registros encontrados son bloqueados automáticamente para todos los otros procesos
DELETE SELECTION([Clientes])
SET QUERY AND LOCK(False)
VALIDATE TRANSACTION
Si el comando no se llama en el contexto de una transacción, se genera un error.
Producto: 4D
Tema: Búsquedas
Número
661
Creado por: 4D v11 SQL
Manual de lenguaje 4D ( 4D v20)
Manual de lenguaje 4D ( 4D v20.1)
Manual de lenguaje 4D ( 4D v20.2)
Manual de lenguaje 4D ( 4D v20.3)
Manual de lenguaje 4D ( 4D v20.4)
Manual de lenguaje 4D ( 4D v20.5)
Manual de lenguaje 4D ( 4D v20.6)