Acceso a base de datos access 97 desde linux

Chema Cortes pych3m4 en gmail.com
Mar Abr 22 03:22:19 CEST 2008


El 2008/4/21 damufo <damufo en gmail.com> escribió:

>  Por fin he probado la solución indicada pero no he sido capaz de
> conseguirlo.
>  He instalado unixODBC, mbdtools tambien otro paquete para tener el
> /usr/lib/libmdbodbc.so, despues he configurado el unixodbc aunque no se si
> lo he hecho bien. Mi codigo es este junto al error. Gracias.
>
>
>  import adodb
>  conn = adodb.NewADOConnection('access') # mxodbc required
>  dsn = "Driver={Microsoft Access Driver
> (*.mdb)};DBQ=//home//damufo//prueba.MDB"
>  conn.connect(dsn)
>
>
>  Traceback (most recent call last):
>   File "proba.py", line 6, in <module>
>     conn.connect(dsn)
>  AttributeError: 'NoneType' object has no attribute 'connect'
>
>  tambien he probado
>  #dsn = ("DRIVER={/usr/lib/libmdbodbc.so};DBQ=//home//damufo//prueba.MDB");

Creo que este artículo se centra más en php que a python. El DSN que
pone está pillado de la documentación del adodb-python, que es un
ejemplo para ODBC windows, no para unixODBC. Además de ésto, hay que
decir que el módulo adodb-python requiere mxODBC, un módulo comercial
que, supongo yo, no has comprado (para php no es necesario).

Si quieres una alternativa que sea libre y gratuita te aconsejo que
pruebes con hk_classes (http://hk-classes.sourceforge.net) que incluye
API para python. Funciona con varios drivers, entre los que se incluye
mdbtools y unixodbc, siendo sólo necesario el primero para acceder a
los ficheros de access. Un ejemplo rápido:

import hk_classes

dr=hk_classes.hk_drivermanager()
con=dr.new_connection("mdb")
con.connect()

db=con.new_database("/ruta/al/fichero.mdb")
print db.tablelist()

tab=db.new_table("tabla")
tab.enable()

print tab.show_currentrow()


La pega es que la documentación deja mucho qué desear; lo bueno es que
puedes combinar el paquete hk_classes con el interface de knoda
scriptándolo todo con python.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es