Necesito conectarme con una bd de access, para acceder a sus registros
{"Lat":10.2392488109812,"Lng":-67.587890625}
1 respuesta
Respuesta de ricardofo
1
1
ricardofo, Visual Fox, Redes, Seguridad Informatica, Windows Xp, soporte...
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)