RE:compartir un ejecutable.
Visual FoxPro es una herramienta que permite de una manera muy sencilla hacer
aplicaciones multiusuario. Primero debes definir e que equipo vas a montar la base de datos(en red por supuesto), luego, en la aplicación solo debes bloquear el registro cuando lo quieres actualizar(modificar o eliminarlo), esto con la intención de que otro
usuario no trabaje sobre el mismo registro, para darte un ejemplo sencillo:
Imagina una tabla "clientes" ubicada en la carpeta "c:\datos\", esta carpeta debe estar compartida en esa PC(donde están los datos, seria EL SERVIDOR) y luego desde otra pc(donde está el programa, serian las terminales) debes conectarte a la pc de datos por Mi Pc, Conectar a Unidad de Red(conectala en la unidad lógica "Z" para que funcioen mejor el ejemplo).
Luego de establecida la conección entre los 2 equipos, procedes a escribir en el inicio de tu aplicación lo siguiente: "Set default to z:\(Carpeta donde estan los datos)", con esta instrucción le estás indicando a la aplicación la ubicación de los datos, a partir de ese momento si tu dices "use clientes", ya el programa sabe cual tabla va a abrir.
Cuando estas actualizando la tabla, utiliza la función RLOCK(), esta devuelve verdadero cuando puede bloquear un registro, y el comando UNLOCK que desbloquea el registro, ejemplo:
sele clientes
locate all for codcliente=thisform.text1.value
if found()
if rlock()
replace codcliente with thisform.text1.value
replace nomcliente with thisform.text2.value
unlock
endif
endif
Debes tener en cuenta es que en el archivo de inicio de tu sistema, debes establecer una cesion de datos en red,
para ello es conveniente utilizar los siguientes seteos:
set exclusive off
set refresh to 1
set reprocess to automatic
SET MULTILOCKS ON
DataSession=2
Ten en cuenta que para poder hacer ZAP, PACK o REINDEX deberas abrir las tablas en modo exclusivo, por ejemplo:
use mitabla exlusive
pack
Yo trabajo de la siguiente forma, mi sistema tiene subcarpetas \DATOS y \TEMP, en ella guardo las tablas compartidas y las tablas temporales respectivamente. Luego instalo la totalidad de la aplicacion en cada maquina, mapeo la red , por ejemplo z:\aplicacion\datos, establezco la ruta al SERVIDOR (o a la PC que hara las veces del mismo) con un SET PATH y lo guardo en otra tabla, donde tengo la configuracion general de la aplicacion.
A continuacion borro de las terminales la subcarpeta \datos y listo!!
Cada una de las terminales accede a los datos compatidos del servidor.
Espero haber ayudado.