Como realizar conexiones entre vfp y access

Necesito conectarme con una bd de access, para acceder a sus registros
{"lat":10.2392488109812,"lng":-67.587890625}

1 Respuesta

Respuesta
1
Te paso un ejemplo que me ayudo a sacar información de una base de datos de access, supongo que tu quieres poder leer y escribir registros, así que tendrás que modificarlo un poco, ya que yo solo leí registros y los copie a tablas alternas.
Pero te dara una buena idea para poder empezar a hacerlo con los comandos de SQL
CLEAR
lcArchivoMDB="C:\Mis\Desarrollos\Farmacia_Proy\PTVGI\data.mdb"
lcConnString="DSN=PTVGI;Dbq="+lcArchivoMDB+";Uid=Admin;Pwd=intercod2004;" && Estos datos dependen de la configuración del ODBC
**lcConnString="Driver={Microsoft Access Driver (*.mdb)};"+"Dbq=PTVGI"+lcArchivoMDB+";Uid=Admin;Pwd=intercod2004;"
*** Nos conectamos a la base de datos ....
lnHandle = SQLStringConnect(lcConnString)
IF lnHandle > 0
*** Intentamos obtener las tablas
IF SQLTables(lnHandle,"TABLE","cTables") > 0
**** Realizamos el recorrido de los tablas obtenidas
SCAN
*** Obtenemos el nombre de la entidad
lcTabla=ALLTRIM(EVALUATE(FIELD(3,"cTables")))
lcQuery="SELECT * FROM "+lcTabla
WAIT WINDOW "Extrayendo Datos de la tabla: "+lcTabla NOWAIT
*** Ejecutamos la consulta segun la entidad actual
IF SQLEXEC(lnHandle,lcQuery,"cImport") > 0
*BROWSE
*Copiamos a una tabla fisica
COPY TO (lcTabla)
USE IN (SELECT("cImport"))
Endif
Endscan
USE IN (SELECT("cTables"))
**** Desconectarnos de la fuente remota
=SQLDisconnect(lnHandle)
ELSE
**** Manejo de Errores
IF AERROR(laError) > 0
Messagebox("Error al obtener entidades:"+laError[2])
ELSE
Messagebox("Error inesperado al obtener entidades...")
ENDIF
ENDIF
ELSE
IF AERROR(laError) > 0
Messagebox("Error al intentar conectar:"+laError[2])
ELSE
MESSAGEBOX("Error inesperado al intentar conectar")
Endif
Endif
Le quite la paja y las validaciones al código.. y agregue lo que necesitas para que puedas escribir a la base de datso de Access.
Te paso el ejemplo más claro y que creo te sera de ayuda realmente.. lo acabo de hacer y probar.. y funciona Ok. Dale un vistazo y con estas instrucciones podrás hacer caso lo que quieras.
lcArchivoMDB="C:\Mis\Desarrollos\Farmacia_Proy\PTVGI\data.mdb"
lcConnString="DSN=PTVGI;Dbq="+lcArchivoMDB+";Uid=Admin;Pwd=intercod2004;"
 && Estos datos dependen de la configuración del ODBC
*** Nos conectamos a la base de datos ....
lnHandle = SQLStringConnect(lcConnString)
*** Ejecutamos la consulta para la tabla SUSTANCIA
SQLEXEC(lnHandle,"SELECT * FROM SUSTANCIA","VISTAANTES")
BROWSE
**ahora escribimos un nuevo registro
= SQLSETPROP(lnHandle, 'Transactions', 2) && Para efectuar transacciones manualmente
= SQLEXEC(lnHandle, "INSERT INTO SUSTANCIA (ID_SUSTANCIA, nombre_SUSTANCIA);
VALUES ('13','Juanito banana') ")
&& Modificamos la tabla SUSTANCIA
= SQLCOMMIT(lnHandle) && Para grabar los datos definitivamente
**** reVISAMOS QUE ESCRIBIMOS CORRECTAMENTE
SQLEXEC(lnHandle,"SELECT * FROM SUSTANCIA ","VISTADESPUES")
BROWSE
**** Desconectarnos de la fuente remota
=SQLDisconnect(lnHandle)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas