2010-07-15 10 views
5

Ecco che cosa ho provato:Come collegare pyodbc ad un file di Access (.mdb) di database

origine dati ODBC di -Trova Vista Manager * attraverso la ricerca,

-Aggiungere una nuova origine file di dati * , la selezione di driver per Microsoft Access (* .mdb), e selezionando il mio file mdb di interesse,

-Import pyodbc da shell Python e provare:

pyodbc.connect("DSN=<that Data Source I just created>") 

ottengo il seguente messaggio di errore (Portugue se **):

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Nome da fonte de dados n\xe3o encontrado e nenhum driver padr\xe3o especificado (0) (SQLDriverConnectW)') 

Che si traduce come "Nome origine dati non trovato e nessun driver standard specificato".

Cosa sto sbagliando? Come farlo bene? Inoltre, ho cercato nel web la documentazione ma non ho trovato nulla che valesse di più, qualcuno potrebbe consigliare qualche documentazione?

* I nomi potrebbero non essere completamente precisi perché il mio Windows è in portoghese.

caratteri speciali ** No, portoghese non ha '3' e '\' come lettere, questi sono modo erroneo

risposta

1

Io uso odbc modulo (incluso nella ActiveState Python), ma testati pyodbc e per me funziona:

#db = odbc.odbc('northwind') 
#db = odbc.odbc('Driver={Microsoft Access Driver (*.mdb)};Dbq=Nwind.mdb;Uid=;Pwd=;') 
#db = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=Nwind.mdb;Uid=;Pwd=;') 
db = pyodbc.connect('DSN=northwind') 

Naturalmente commentato opere connessioni troppo.

ho configurato nothwind come DSN utente in modo che probabilmente sarà necessario configurare la connessione al database ODBC come DSN utente o DSN di sistema, o senza configurare in ODBC è possibile utilizzare ConnectString dove si può puntare al file .mdb.

2

Ho avuto un problema simile con pyodbc anche se non con Access ma un diverso driver ODBC.

Questo è ciò che mi ha aiutato. http://robertoschiabel.wordpress.com/2008/02/28/windows-x64-32bit-odbc-vs-64bit-odbc/ (Ecco l'articolo KB appropriata nel caso in cui questo URL va via. http://support.microsoft.com/kb/942976/en-us)

nostro hardware del server precedente è morto e abbiamo dovuto ridistribuire rapidamente su un sistema operativo a 64 bit, perché questo è tutto quello che avevamo, che era disponibile. Usando il normale strumento di amministrazione ODBC ho aggiunto il nome DSN appropriatamente, ma ha comunque affermato che non è stato trovato. Solo quando eseguivo la versione speciale a 32 bit dell'amministratore ODBC, ero in grado di definire un DSN che il mio script che utilizza pyodbc poteva trovare.

1

È intelligente elencare le connessioni odbc con pyodbc per vedere cosa stai utilizzando. Assicurati di utilizzare il driver python 32 bit Python a 32 bit appropriato. Se si desidera utilizzare i file di accesso a 64 bit, è necessario utilizzare MS Acceess a 64 bit che fornisce driver.

sources = pyodbc.dataSources() 
keys = sources.keys() 
for key in keys: 
    print key 
Problemi correlati