Hola, yo he manejado ese tema en la siguiente forma, espero te sirva:
- todo el sistema esta en tablas libres
- todo se graba con un numero único de operación
- cada vez que se graba algo, lo hace en 2 unidades diferentes, la unidad local (C:\sistema) y la unidad virtual (S:\Sistema) en el servidor && esto de unidad local y virtual es desde el punto de vista del usuario.
- toda vez que no encuentra la unidad "S" dispara un error: error()=202 && ruta o nombre de archivo no valida, entonces solo graba en unidad local y alimenta una tabla de control con el código único de operación
- toda vez que el servidor carga el programa, busca en los "usuarios locales" (que para el servidor son unidades virtuales g, h, i, j, k, etc); busca si la tabla de control contiene datos, si es asi, captura los números de operación, valida si ya los tiene y sino hace un append de estos en las tablas respectivas y blanquea la tabla de control.
- todas las unidades a controlar (tanto para el servidor como para el usuario), se guardan en tablas locales y en ambos casos se controlan por: error()=202
** esto lo hago con maquinas conectadas por VPN a travez de internet
me sirve tanto para cuando el servicio de internet se cae (se pierde la conexion con el servidor), como cuando se pierde la conexion dentro de red local, muy util para conexion inalambrica.
** las conexiones VPN se hacen por windows (cualquier version), mas no me preguntes como se hacen, ya que esa no es mi area laboral.
Suerte.