Dudas FoxPro

Hola que tal, mi nombre es Juan Carlos, soy Desarrollador en Visual FoxPro, tengo unas dudas sobre el lenguaje, espero me puedas ayudar:
1. Como puedo bloquear ventanas de un sistema en red. Es decir, si dos usuarios ejecutan el programa y entran a la misma ventana o formulario. Hice pruebas con la instrucción
if wexist("nombre de formulario")
  wait window "abierta"
else
  do form ventana
Endif
Esta instrucción solo funciona desde el mismo programa, no interactúa si son varios usuarios desde diferentes accesos a el programa. ¿Qué solución me recomiendas tomar?
2. Tengo una tabla llamada inventario.dbf desde la cual se mantienen las existencias de los productos, esta tabla puede llegar a tener varios accesos al mismo tiempo y al mimo registro, e probado usar la instrucción lock(), pero si otro usuario accede a la tabla de modo shared desbloquea el registro, ¿qué me recomiendas hacer para que no se altere la información de esta table?

2 Respuestas

Respuesta
1
Bueno con eso de la ventana abierta no se para que lo quieres si me dices cual es el objetivo tal vez te pueda dar otra solución, lo de la tabla inventario si todos puedemn actualizar la tabla para que bloquearla explicame para que quieres bloearla con lock() que bloquea toda la tabla tal te sea más útil si me dices que quieres hacer .
Respuesta
1
1) Como en cualquier aplicativo multiusuario lo que debes hacer es preguntar por el estado del registro más no por la ventana que esta ejecutando, para ello lee sobre LOCK(), RLOCK() y FLOCK()
2) Antes de accesar al registro pregunta si esta bloqueado, mientras lo estés usando bloquealo, para evitar cambios inesperados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas