Trabajar con VFP en red es relativamente sencillo ya que el mismo VFP, se encarga casi de todo el tema de administrar la aplicacion en red.
Primero debes definir en que equipo vas a poner 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 "tclientes" ubicada en la carpeta "c:\datos\", esta carpeta debe estar compartida en esa pc(donde están los datos) y luego desde otra pc(donde está el programa) debes conectarte a la pc de datos por Mi Pc, Conectar a Unidad de Red(conectala en la unidad lógica "Z" para que funcione 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:\", 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 tclientes", ya el programa sabe cual tabla va a abrir.
Ahora bien, 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 tclientes
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
Igual para eliminarlo;
sele tclientes
locate all for codcliente=thisform.text1.value
if found()
if rlock()
delete
endif
endif
Lo que tienes que tener en cuenta es que en el archivo de inicio de tu sistema,
debes establecer una cesion de datos en red, para ellos es conveniente utilizar los siguientes seteos:
set exclusive off
set refresh to 1
set reprocess to automatic
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 maquina 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.