miércoles, 1 de agosto de 2018

Conectarse a una tabla libre DBF usando el proveedor OLE DB

Siendo un programador de Visual FoxPro9, aún sigo usando las tablas DBF, es una costumbre de años y que no se me va a quitar de la noche a la mañana. Las tablas DBF son el método más fácil en que nosotros podemos almacenar y recuperar información en un formulario.

Es por eso que aún usando Windev, siempre vamos a necesitar acceder a una tablita DBF bien sea para importar, exportar, leer o escribir información.

Aquí les dejo un ejemplo de cómo acceder a una DBF usando el proveedor OLE DB que viene con Visual FoxPro.

*NOTA: necesitas instalar el provedor OLE DB en las máquinas de tus clientes, así que te dejo el link de descarga.

 

// -- Conectarse a una tabla libre DBF usando el proveedor OLEDB de VisualFoxPro
ctVFPConn is Connection
ctVFPConn..Source = "C:\my\path\to\usuarios.dbf"
ctVFPConn..Access = hORead
ctVFPConn..Provider = "VFPOLEDB.1"

IF NOT HOpenConnection(ctVFPConn) THEN
       Error(HErrorInfo())
       RETURN
END

// En éste punto ya estamos "conectados" a la tabla.
// ahora vamos a realizar alguna consulta
dsCurUsuarios is Data Source // Esto vendria siendo como un cursor.

IF NOT HExecuteSQLQuery(dsCurUsuarios,ctVFPConn,hQueryWithoutCorrection,"SELECT * FROM usuarios") THEN
       Error(HErrorInfo())
       RETURN
END
// Recorrer el data source (cursor)
HReadFirst(dsCurUsuarios) // GO TOP
WHILE HOut(dsCurUsuarios) = False  
       Info(dsCurUsuarios.email) // MESSAGEBOX(curUsuarios.email)
       HReadNext(dsCurUsuarios) // SKIP 1 IN curUsuarios
END
Info(HNbRec(dsCurUsuarios)) // MESSAGEBOX(RECCOUNT('curUsuarios'))
HClose(dsCurUsuarios)

Una traducción de éste código al VFP sería:

USE "C:\my\path\to\usuarios.dbf" ALIAS curUsuarios
SCAN
      MESSAGEBOX(curUsuarios.email)
ENDSCAN
MESSAGEBOX(RECCOUNT('curUsuarios'))
USE IN curUsuarios


No hay comentarios:

Publicar un comentario