2010-04-01 24 views
12

Esiste un modo per accedere a un database JET da Python? Sono su Linux. Tutto quello che ho trovato era un visualizzatore .mdb nei repository, ma è molto difettoso. GrazieAccesso a un database JET (.mdb) in Python

+1

possibile duplicato di http://stackoverflow.com/questions/256459/populate-a-ms-access-database-in-linux –

+2

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

risposta

11

MDB Tools è un set di librerie e utilità open source per facilitare l'esportazione di dati dai database MS Access (file mdb) senza utilizzare le DLL Microsoft. Pertanto, i sistemi operativi Windows non possono leggere i dati. O, per dirla in un altro modo, sono il reverse engineering del layout del file MDB.

Jackcess è una libreria Java pura per la lettura e la scrittura nei database MS Access. Fa parte del progetto OpenHMS di Health Market Science, Inc.. Non è un'applicazione. Non c'è GUI. È una libreria, progettata per altri sviluppatori da utilizzare per creare applicazioni Java.

ACCESSdb è una libreria JavaScript utilizzata per connettersi e interrogare in modo dinamico i file di database Microsoft Access disponibili localmente in Internet Explorer.

Entrambe Jackcess e ACCESSdb sono molto più recenti degli strumenti MDB, sono più attive e supportano la scrittura.

2

Probabilmente il più semplice soluzione:

  1. Scaricare VirtualBox e installare Windows e MS l'accesso in esso.

  2. Scrivere un piccolo server Python che utilizza ODBC per accedere al database e che riceve i comandi da un socket di rete.

  3. Su Linux, connettersi al server nella macchina virtuale e accedere al database in questo modo.

Questo ti dà pieno accesso a tutte le funzionalità. Ogni altra soluzione limiterà le funzionalità che è possibile utilizzare (ad esempio, non sarà possibile modificare i dati) o sarà poco sicuro.

+1

Perché il downvote? – Oddthinking

+0

Non l'ho svalutato, ma il passaggio 2 sembra sostanzialmente più complicato di qualsiasi altra opzione. –

+1

Ho dovuto fare qualcosa di simile a questa, esperienza orribile, ma ha funzionato. – David

4

Installare la versione impacchettata della distribuzione di mdbtools, utilizzare mdb-export per esportare i dati Jet in file di testo, importare i dati in un database SQLite e disporre di una combinazione di codice e dati che funziona in quasi tutti gli ambienti di elaborazione che è possibile ottenere. mani su.

0

Se si crea la versione CVS di mdb-tools, funziona piuttosto bene. Risolve un sacco di problemi che stavo cercando di usare quello nei repository relativi alla dimensione del campo memo. mdb-tools è fondamentalmente un progetto morto, ma le persone hanno ancora contribuito occasionalmente al codice del CVS. La build di Ubuntu è del 2004, penso.

istruzioni CVS qui:

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

Se utilizzando Ubuntu, prima di scaricare i sorgenti si vorrà abilitare i repository di origine e fate:

apt-get build-dep mdbtools 

che otterrà i pacchetti richiesti si Dovremo creare manualmente i sorgenti da CVS.

Problemi correlati