Programar aplicación multiusuario en VFP 9.0

Quisiera desarrollar una aplicación sencilla de Control de inventario pero que se ejecute en varias maquinas (en red) aunque solo este instalada en una de ellas y que sea confiable. Ya he creado una aplicación de facturación pero en una maquina, probé en una red compartiendo la carpeta donde esta el ejecutable y la base de datos y probé ejecutar el programa, visualizar datos, ingresar registros desde otra maquina y funciono pero al salir del sistema yo ejecuto un PRG que abre las tablas en modo exclusivo y ejecuto sobre ellas el comando Pack, en este momento me da error, me dice que no hay ninguna tabla abierta, esto es desde la maquina donde no esta instalado el programa, pero si lo ejecuto desde la maquina donde recide el programa no me da ningún error. Por favor me gustaría que me orientaras al respecto porque creo que no estoy tan largo de logar mi meta pero necesito de la ayuda de un experto.

1 Respuesta

Respuesta
1

1. Para ejecutar el comando pack necesitas tener la tabla abierta en modo exclusivo y esto no se puede hacer en una aplicación multiusuario, y si te da el error al abrirla en modo exclusivo es porque ya se encuentra abierta, puedes hacer una rutina rebuild, que lo que hace es darle un reindex a las tablas y un pack, pero esta rutina no la puedes hacer en tu prg sino como una opción que solo ejecute el administrador de la aplicación:

Los comandos básico para un uso multiusuario son:

SET EXCLUSIVE OFF

SET MULTILOCKS ON

SET REPROCESS TO 0

OPEN DATABASE data SHARED

Saludos y espero haberte ayudado en algo si es así cierra la pregunta y la calificas.

A ver si entendí bien, me dices que en el PRG que se ejecuta al salir de la aplicación elimine el código en el que abro las tablas en modo exclusivo y ejecuto el pack y en su lugar cree una opción propia del administrador como por ejemplo un botón de comando para eliminar esos registros cuando el administrador lo decida?.

Si exactamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas