Visual Foxpro 10 : Configuracion de Inicio de la clase sqldata2

Fecha Publicación:       06 de Enero de 2024
Fecha Modificación:       14 de Enero de 2024

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

 

Articulo : 616 - Veces Leidas
Compartir Articulo: