Hola Víctor

Tengo dos formularios que requieren información de una misma tabla, si elimino un registro de esta, cuando otro usuario esta manipulando el segundo formulario, se da un error de acceso. ¿Cómo puedo manejar los bloqueos en dicha tabla para que no se presente esta situación?

1 respuesta

Respuesta
1
Cuando desees ingresar otro registro con la clave primaria de uno que previamente fue marcado para ser eliminado, puedes usar algo similar a:
SEEK Clave_primaria
IF !EOF() .AND. DELETED()
** Si lo encuentra y está
** marcado para ser eliminado
RECALL
ELSE
APPEND BLANK
REPLACE Tabla.Clave WITH Clave_primaria
ENDIF
REPLACE Tabla.Campo1 WITH Valor1, Tabla.Campo2 WITH Valor2, ....
Es decir, antes de añadir un nuevo registro verifica si ya existe y si se encuentra marcado para ser eliminado, en caso que así sea, "desmarcas" el registro, si no existe lo agregas, posteriormente remplazas los campos con los nuevos datos (tanto si lo agregaste como si lo desmarcaste.
No uses el comando "PACK" en ambiente multiusuario, mejor pon en la sección de seteo la línea:
SET DELETED ON
De esa forma el registro solo se marcará para ser eliminado y no se bloqueará la tabla.
Bueno, eso digo yo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas