Visual Foxpro 10 : clase sqldata2 / Funcion psqlejecutar
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 de la funcion psqlejecutar , que se encuentra en el archivo manual referencia.rtf ,
Se hace referencia en el CURSO 1 SQLDATA Y SQLDATA CURSO DE INCIO en el tiempo 00:30:40
Que es la funcion psqlejecutar de VFP 10
La funcion psqlejecutar , se le conoce como la funcion de crear tablas , realiza consultas y comandos en el servidor y trae el resultado a un cursor.
La funcion psqlejecutar , es la que permita ejecutar consultas al servidor , comandos select ,
Sintaxis
osqldata.psqlejecutar(objeto screen,"numero o nombre de conexión",
objeto entorno de datos,vacio,
"consultag,consultah,consulta,consultac,consultar o comando",
"cursor", "basededatos.dbo.tabla", "select * from basededatos.dbo.tabla",
"-1 o numero del select a traer o vacio",
"nombreid","camposignorados y condiciones separados por coma",
vacio,"idice clave primaria si se usan dbf","campossimbolos" )
CURSORSETPROP("Buffering",3,"cursor")
// Para poder crear índices Y volver al 5 obligatoriamente
CURSORSETPROP("Buffering",5,"cursor")
Por defecto se considsera al usar consultag , que es una tabla con clave primaria llamada “id” autoincremental
Puede colocar cualquier nombre y si no es autoincremental
Coloque la palabra grabarid en camposignorados separados por coma.
Coloque sinidk en el valor de id solo para insertar registros en una tabla que no tiene id.
→ "consultag" | Consultas para modificar y despues grabar. trae el cursor para ser grabado posteriormente, |
→ "consulta" | Consultas para usarla en un reporte. para informes, reportes, |
→ "consultac" | Es una consulta para cache , trae del cache , graba la consulta en la maquina local como un dbf , y no esta consultando a cada rato el servidor cuando abro el formulario , solo cuando hay un cambio en el servidor se actualiza automaticamente la consulta cuando se vuelva a ejecutar la instruccion. Es una consulta de solo lectura de una tabla , se utiliza generalmente como una consulta para tabla maestra. |
→ "consultah" |
Es igual que consultac , Al abrir el formulario que es invocado la consulta verifica si no hay cambios en la consulta , si no hay cambios trabaja con la consulta grabada en el archivo de la maquina local , si hubiera un cambio vuelve a consultar al servidor y grabarlo en el archivo de la maquina local. Se comporta como consulta jefe es decir que permite la grabacion de las modificaciones |
→ "Consultar" |
Se conecta al servidor remoto |
Ejemplo de uso 1
osqldata.psqlejecutar(_screen, "1", _screen,oclientes, "consultag",
"clientes", "fabrica.dbo.clientes",
"select * from fabrica.dbo.clientes")
CURSORSETPROP("Buffering",5,"clientes") //por defecto es buffering 5
osqldata.psqlejecutar(_screen, "1", _screen,oclientes, "consultag",
"clientes", "fabrica.dbo.clientes",
"select * from fabrica.dbo.clientes",,”idcliente”)
CURSORSETPROP("Buffering",5,"clientes") //por defecto es buffering 5
osqldata.psqlejecutar(_screen, "1", _screen,oclientes, "consultag",
"clientes", "fabrica.dbo.clientes",
"select * from fabrica.dbo.clientes",,”codcli”,”grabarid”)
CURSORSETPROP("Buffering",5,"clientes") //por defecto es buffering 5
osqldata.psqlejecutar(_screen, "1", _screen,oclientes, "consultag",
"clientes", "fabrica.dbo.clientes",
"select * from fabrica.dbo.clientes",,”sinidk”)
CURSORSETPROP("Buffering",5,"clientes") //por defecto es buffering 5
Ejemplo de uso 2
Recuerda cuando llamamos siempre una funcion debemos instanciar la clase sqldata2
LOCAL osqldata2 as sqldata2 OF sqldata2.sqldata2
osqldata2=CREATEOBJECT("sqldata2.sqldata2")
xnombre=CHRTRAN(thisform.obuscar.Value," ","%")+"%"
TEXT TO vselect TEXTMERGE NOSHOW
select c.id, c.nombre, c.direccion from clientes c
where c.nombre like ?xnombre
ENDTEXT
thisform.ogrilla1.RecordSource=""
osqldata2.psqlejecutar(_screen,"1",thisform,,"consultag",
"clientes_1","clientes",vselect,,
"id","maxrk100,localidad,provincia,pais")
thisform.ogrilla1.RecordSource="clientes"
Explicacion Parametros
→ clientes_1 = alias , se le puede poner cualquier nombre o el mismo nombre de la tabla del servidor.
→ clientes = Es el nombre de la tabla del servidor.