Visual Foxpro 10 : Configuracion de Inicio de la clase sqldata2
Descripción
Clase para Visual Foxpro, que permite conectarse a servidores remotos (sql server, mysql, mariadb, postgresql, firebird, oracle) tambien (access,excel,sqlite,dbf) en sus últimas versiones.
→ sqldata2 tiene las mismas funcionalidades que sqldata, y pueden trabajar juntas en el proyecto
sqldata y sqldata2 ,también funcionan en Visual Foxpro Advanced de 32 y 64 bits
→ La clase visual sqldata esta diseñada con cursoradapter via ADO (oledb y emulado odbc)
→ La clase visual sqldata2 esta diseñada con cursoradapter via ODBC (unicamente)
pueden conectarse a base de datos en la nube (MICROSOFT AZURE, GOOGLE CLOUD, AMAZON WEB, y otros)
En ambos casos pueden usar los archivos VCX,VCT en un mismo proyecto
Con la clase sqldata que he desarrollado, para la comunidad de FOX, podran acceder a servidores microsoft sql server, mysql, mariadb, postgreSQL, sqLite, oracle, firebird, dbf, access y excel, fácilmente, o si necesitan interactuar con otros motores a la vez
La clase devuelve en las consultas al servidor, un cursor DBF, después modifican el cursor, y cuando lo graban traduce las modificaciones al server.
Esta desarrollado en forma nativa VFP9 SP2 para VFP9 SP2 , tambien permite compilar el proyecto en Visual Foxpro 8 SP1, tambien funciona en VFPA10 32 y 64 bits ,
resuelve muchos problemas de conexión en red local e internet
para ser usada en técnica de programación cliente-servidor.
además podrán usar técnicas para servidores de bases de datos distribuidos
todas las versiones nuevas de sqldata son compatibles con las anteriores
pueden acceder a distintos servidores a la vez, del mismo motor o distintos
compatible con sql2000, sql2005, sql2008, y sql2008r2, sql2012, sql2014, sql2016, sql2017, sql2019, sql2022 (express, estandar, developer, enterprise), mysql 8, mariadb 11, postgresql 15, firebird 5, oracle 18-22. Y versiones Anteriores.
windows XP, Vista, 7, 8, 8.1, 10, 11, y servidores (32 y 64 bits)
deben instalar el correspondiente Driver OLEDB u ODBC de 32 o 64 bits en cada PC cliente para cada version del motor que utilice.
Aqui se especifican las funciones de sqldata y sqldata2
para el manejo de base de datos a travez de internet (tecnica clientes-servidor)
con visual foxpro 8, 9, 10 32 y 64 bits
sqldata utilza OLEDB es ideal para sqlserver, access, oracle, dbfs.
sqldata2 utiliza ODBC es ideal para mariadb, mysql, postgresql, sqlserver, firebird, sqlite, access, dbfs.
No hay diferencia en velocidad entre ambas. Solo que sqldata2 abarca muchos mas motores.
*conceptos previos (conocimientos previos.txt)
*seleccion del motor a utilizar (motores.txt)
*técnicas de trabajo maestro-esclavo , maestro-maestro, o conexión directa (tecnicas.txt)
*funcionamiento de la clase (funcionamiento.txt)
*manual de referencia (manual de referencia.docx)
*manejo de los reintentos de conexión (reintentar conexion.txt)
*manejo de campos identity al relacionarlos (identity.txt)
*tecnica exclusiva de alta eficiencia para la conexion con lo motores de bases de datos locales y remotos, de forma automatica.
*manejo de campos correlativos (correlativos.txt)
*manejo de rangos de correlativos por sucursal (correlativos.txt)
*manejo de cursores en cache (datos en cache.txt)
*manejo de imágenes (imagenes.rtf)
*registro de los movimientos en las tablas (log.txt)
*manejo del stock (stock y saldos.txt)
*manejo de bloquear registros y tablas (bloqueos.txt)
*manejo del gif animado de procesando (gif.txt)
*manejo de la grabacion a la par en dbf y en el motor (migrar en produccion.txt)
*comparar estructura de 2 bases de datos y hacer cambios (comparar estructura.rtf)
*programar usando el dataenvironment (dataenvironment.rtf)
*actualizacion automatica del ejecutable en el cliente (actualizar ejecutable automaticamente.txt)
*registracion de librerias en el cliente automaticamente (actualizar ejecutable automaticamente.txt)
*programacion offline (offline.txt)
*importar dbfs al motor (importar.txt)
*optimizar uso de memoria del servidor y rendimiento de sus sistemas(optimizar la memoria usada por el motor y el rendimiento.txt)
*crear índices en los cursores que genera la clase. (crear indices en sqldata.txt)
*convertir tipos de campos incompatibles. (convertir tipos de campos incompatibles.txt)
*bloqueos y transacciones (bloqueos y transacciones.txt)
*convertir cursores a cadena de texto para importar y exportar(convertir cursores a cadena de texto para importar y exportar.txt)
*instrucciones para trabajar con dbf (instrucciones para trabajar con dbf.txt)
*otras funciones (otras funciones.txt)
Instaladores
Los instaladores se encuentran en la web del autor: Link de descargas. https://levelvfp.com.ar/
→ Descarga Gratuita FULL de screenclase, sqldata, sqldata2 y therm.
→ VFP 9 IDE ECOSYSTEM (reemplaza el CD original de VFP 9 IDE y lo potencia)
→ VFPA 10 32 Y 64 BITS
→ RUNTIMES PARA LOS CLIENTES
Link de descargas:
https://levelvfp-my.sharepoint.com/:f:/g/personal/gfvaldez_levelvfp_onmicrosoft_com/EpLRTWENSDFGq8qfHulkW4IBHHLozhzPSF7rNgHyIiArLw?e=K4bly1
Ruta Instalacion por defecto de los manuales
Cuando instalamos en nuestra pc la clase sqldata, sqldata2 se instala por defecto en la ruta:
C:\Program Files\LEVELVFP ARGENTINA\
Dentro de la ruta esta la carpeta manuales sqldata y sqldata2 , alli se se encuentra la documentacion oficial , en el archivo manual referencia.rtf ,
Comandos Iniciales
/* Si usamos escritorio remoto y si nos cierra el navegador o la pantalla de escriorio
la aplicacion queda activo y no sale , solo saldremos con el comando: */
ON SHUTDOWN quit
Establecer la ruta del proyecto
/* devuelve la ruta de acceso con el nombre del programa */
lcsys16 = SYS(16)
/* quita el nombre del programa y devuelve la ruta de acceso*/
CD LEFT(lcsys16, RAT("\", lcsys16))
/* controla que no sea un .app */
IF RIGHT(lcsys16 , 3) = "FXP"
CD ..
ENDIF
Instanciamos la clase sqldata2
Solo la ruta lo ponemos en el prg principal
SET PATH TO clases
Set classlib to sqldata2
Siempre que usemos alguna funcion debemos instanciar la clase:
// Instanciamos la clase sqldata2
LOCAL osqldata2 AS sqldata2 OF sqldata2.sqldata2
osqldata2=CREATEOBJECT("sqldata2.sqldata2")
Establecer Funciones Iniciales de la clase sqldata2
// cierra los cursores ,temporales , dbf ,
osqldata2.psqlresetear(_screen)
// Comparaciones de versiones en este caso hemos puesto 4
// para que no controle la version de runtimes
osqldata2.pversioncomp(_screen,VERSION(4))
//Psqlcargar. Crea todas las propiedades y clases necesarios para el entorno de desarrollo.
osqldata2.psqlcargar(_screen,"1",CREATEOBJECT("custom"))
Nos conectamos a la base de datos
osqldata2.psqlcadena(_screen,"1","mysql80","ip_servidor",
"usuario","clave","spanish","read uncommitted","base_de_datos","","3306")
El parametro mysql80 = es para la conexion a una base de datos MYSQL recuerda instalar el driver para MYSQL por ejemplo : mysql-connector-odbc-8.0.33-winx64.msi , lo podemos descargar de la pagina https://levelvfp.com.ar/
//Actualiza el ejecutable en cada maquina local
osqldata.psqlarchivoactualizar(_screen,"1","archivos","sqldataprueba.exe","01","11")
//psqlintruso en automatico controla que no se abran conexiones odbc que no
//surjan de sqldata2, manual no controla
osqldata2.psqlintruso(_screen,"automatico")
//psqlocultarcon en automatico oculta la conexion al motor (antirasonware), manual no oculta
//osqldata2.psqlocultarcon(_screen,"7","automatico")
IF osqldata2.psqlestado(_screen,"1")=.f.
MESSAGEBOX("Error al conectarse 6",64,"Atención")
RETURN
ENDIF
/* psqlestructura especifica la ruta donde se guardaran la estructura
de las consultas hechas con la funcion psqlejecutar,
Ahora es posible crear tablas con la estructura de los cursores creados con psqlejecutar,
y agregarlos al dataenvironment. Muy útil para diseñar en formularios o informes
*/
osqldata2.psqlestructura(_screen,"1","automatico","c:\descargas\sqldataoledb\estructura")
/*La Funcion psqlcerrar optimizar la memoria usada por el motor
Si ponemos manual , la conexion se abrira y se cerrara en 15 minutos aproximadamente ,
no se mantiene abierta porque se pondra muy lenta el sistema.
Si ponemos Automaticamente , se abrira y cerrara a cada rato cuando se envie un comando de modificacion de los registros ,
en este caso se pondra automatica si se tiene una buena conexion entre el usuario y el motor (servidor).
NOTA si no ponemos este comando psqlcerrar por defecto esta configurado en manual
*/
osqldata2.psqlcerrar(_screen,"1","manual")
→ Vea el tutorial Visual Foxpro 10 : clase sqldata2 / Funcion pversioncomp
→ Vea el tutorial Visual Foxpro 10 : clase sqldata2 / funcion psqlresetear