2010-04-01 27 views
12

¿Hay alguna manera de acceder a una base de datos JET desde Python? Estoy en Linux. Todo lo que encontré fue un visor .mdb en los repositorios, pero es muy defectuoso. GraciasAccediendo a una base de datos JET (.mdb) en Python

+1

posible duplicado de http://stackoverflow.com/questions/256459/populate-a-ms-access-database-in-linux –

+2

O http: // stackoverflow.com/questions/853370/what-do-i-need-to-read-microsoft-access-databases-using-python – Fionnuala

Respuesta

11

MDB Tools es un conjunto de bibliotecas y utilidades de código abierto para facilitar la exportación de datos desde las bases de datos de MS Access (archivos mdb) sin utilizar las DLL de Microsoft. Por lo tanto, los SO no Windows pueden leer los datos. O, para decirlo de otra manera, están haciendo ingeniería inversa del diseño del archivo MDB.

Jackcess es una biblioteca pura de Java para leer y escribir en las bases de datos de MS Access. Es parte del proyecto OpenHMS de Health Market Science, Inc. No es una aplicación. No hay GUI. Es una biblioteca, destinada a otros desarrolladores para construir aplicaciones Java.

es una biblioteca de JavaScript utilizada para conectarse dinámicamente y consultar archivos de base de datos de Microsoft Access disponibles localmente en Internet Explorer.

Tanto Jackcess como ACCESSdb son mucho más nuevos que las herramientas de MDB, son más activos y tienen soporte de escritura.

2

Probablemente la solución más sencilla:

  1. Descargar e instalar VirtualBox acceso de Windows y MS en ella.

  2. Escriba un pequeño servidor Python que use ODBC para acceder a la base de datos y que reciba comandos de un socket de red.

  3. En Linux, conéctese al servidor en la máquina virtual y acceda a la base de datos de esta manera.

Esto le da acceso completo a todas las funciones. Cualquier otra solución limitará las funciones que puede usar (por ejemplo, no podrá modificar los datos) o será bastante inseguro.

+1

¿Por qué el downvote? – Oddthinking

+0

No lo rechacé, pero el paso 2 suena mucho más complicado que cualquiera de las otras opciones. –

+1

He tenido que hacer algo similar a esto, experiencia horrible, pero funcionó. – David

4

Instale la versión empaquetada de su distribución de mdbtools, use mdb-export para exportar los datos Jet a archivos de texto, importe los datos en una base de datos SQLite y tenga una combinación de código y datos que funcione en casi cualquier entorno informático que pueda obtener las manos en.

0

Si construye la versión CVS de mdb-tools, funciona bastante bien. Se corrigió una gran cantidad de problemas que tenía tratando de usar el que está en los repositorios relacionados con el tamaño del campo memo. mdb-tools es básicamente un proyecto inactivo, pero la gente todavía ha estado contribuyendo código de vez en cuando al CVS. La construcción en Ubuntu es de 2004, creo.

instrucciones CVS aquí:

http://sourceforge.net/scm/?type=cvs&group_id=2294

Si utilizando Ubuntu, antes de descargar las fuentes que usted desea habilitar los repositorios de origen y hacer:

apt-get build-dep mdbtools 

que conseguirán los paquetes requeridos se Necesitará construir manualmente las fuentes de CVS.

Cuestiones relacionadas