lo que queres hacer , tiene su complejidad.
crea indices.
Todo lo que deben tener presente al trabajar con motores de base de datos, cliente-servidor. para no naufragar
*conectar al servidor remoto: local, internet, hosting
*si no se puede conectar, reintentara automaticamente, antes de cualquier operacion y no dara error de conexion.
*cada vez que se conecta al servidor, se deben enviar distintas instrucciones nuevamente
*a veces la conexion se muestra activa, pero no lo esta. y hay que reconectar
*mantener la conexion activa, impidiendo que el servidor corte la conexion por inactividad. durante 20 minutos, y luego cerrar la conexion.
*apertura y cierre de conexion por grupo de instrucciones.
*envio para alta velocidad: eliminar , actualizar, insertar, de a 100 registros, al servidor y operar alli. en lugar de instruccion por instruccion
*si se mantiene la conexion desde que la abren al comienzo del programa, y lo cierran al finalizar el programa. empieza a ponerse lento el servidor y los demas usuarios
*compatibilidad con los distintos tipos de campos
*manejo de fechas nulas, en lugar de fechas en blanco (da error al grabar)
*manejo de transacciones: se graban todas las tablas relacionadas, y si hay error no se graba ninguna: ejemplo cliente, detalle
*manejo de campos llaves: id, idcliente, codcliente, "fecha,prefijo,numero" de distintas tablas. adaptando a otras tablas de distintas bases de datos que no usan id
*crear columnas adicionales para calculos, que no se deben grabar en la tabla del servidor
*trabajar con imagenes, o archivos, almacenados en campos de la tabla, en el servidor
*regular el tiempo de espera para que una instruccion se complete
*regular el tiempo de espera de una conexion al servidor.
*poder conectarse a distintos servidores a la vez.
*administrar errores.
*hay funciones no documentadas de vfp.
*adaptarse a las distintas bases de datos mas usadas: sql server, mysql, mariadb, firebird, postgresql, oracle. automaticamente
*leer tablas maestro desde el servidor remoto (para llenar combos), y grabarlo en pc local. y la proxima vez que se ingresa al formulario, no vuelve a cargar todo nuevamente.
*los hosting, no son todos iguales. hay distintos modos de grabacion para adaptarse
*concurrencia, conectividad, optimización, seguridad.
*trabajar con campos ID (identity), para relacionar tablas, madre-hija, madre-madrehija-hija, madre-madre-madrehija-hija.
*trabajar con instrucciones multiples, para enviar de una sola vez al servidor
Lo que hay que saber. Que cuando se contrata un proveedor de internet. Hay que preguntar velocidad de bajada y de subida. Lo mejor es que sean simetricas. Y sube a muy alta velocidad
Si de bajada tenes 50 megas capaz que de subida tengas 6 megas. Segun el proveedor.
Si se satura la velocidad de subida. Baja mucho la velocidad de bajada
Si se conectan desde fox a un servidor central por internet. La velocidad que se usa en la central es la de subida. Por eso se pone tan lento
Para referencia de velocidad. Recuerden que la placa de red local tradicional usada es de 100 megas.
____________________________
*sqldata y sqldata2. tienen en cuenta todas estas cosas. de forma transparente
*sqldata y sqldata2. esta basada en cursoradapter.
*sqldata y sqldata2. crecen a medida que me van reportando errores y mejoras. de todos los usuarios. y otras que hago. tambien, cambios debido a nuevos controladores odbc, oledb. y las mejoras son para todos los colegas.
*un unico metodo de programacion para todas las bases de datos.
*programacion en cursores nativos vfp, luego la clase convierte las modificaciones a instrucciones de sql, y lo envia al servidor.
*sqldata nacio para sql server 2000 unicamente, en el año 2004. desde entonces la actualizo continuamente
*sqldata y sqldata2 , las ultimas versiones siempre son compatibles con las anteriores. solo deben cambiar sqldata.vcx,vct o sqldata2.vcx,vct
comparto mi carpeta de utilidades
pueden ver los archivos de textos, para detalles