Funcion lock()

Bueno el problema es el siguiente.
Tengo una aplicación y estoy metiéndole bloqueo de registros, para que cuando hayan dos en el mismo registro pues solo uno pueda modificar, mientras que el otro solo ver.
Uso lock(), todo esta bien, solo quisiera saber si hay alguna manera de saber si el registro esta bloqueado desde la aplicación que corre el otro usuario.
Uso también lock en el otro y listo se que si me vevuelve .f. Esta bloqueado, hay alguna manera de hacer que no salda ese aviso de que intentando bloquear presione escape para cancelar.
Y por ultimo, cuando en ambos equipos veo el mismo registro y se modifica en el que tiene permiso para bloquerar no se refleja en la otra maquina hasta que no se libere hay alguna manera de hacer que los cambios se reflejen inmediatamente se hacen.
Gracias es mi primera vez con bloqueos

1 Respuesta

Respuesta
1
La idea es que se bloquee el registro al momento inmediato anterior del reemplazo de los campos por el nuevo valor, de esta forma el tiempo de espera de otro usuario para modificar dicho registro será nulo.
Procedimiento:
Set Talk Off
Select CLIENTES
Do While Not LOCK()
EndDo
Replace campo1 with Valor1
Replace campo2 with Valor2
Replace campo3 with Valor3
UNLOCK
Para que se refresque en forma automática, trata de usar los siguientes SETs en el .PRG que arranca tu sistema:
SET NOTIFY OFF
SET EXCLUSIVE OFF
SET UNIQUE OFF

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas