2010-07-15 32 views
5

Aquí es lo que he intentado:Cómo conectar pyodbc a un archivo de Access (.mdb) de base de datos

origen de datos ODBC de -Buscar Vista Manager * través de la búsqueda,

-Añadir un nuevo origen de datos de archivos * , la selección de controlador de Microsoft Access (* .mdb), y la selección de mi archivo MDB de interés,

pyodbc -import de Python shell y tratar:

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

me sale el siguiente mensaje de error (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)') 

Lo que se traduce como "Nombre de fuente de datos no encontrado y no se especificó ningún controlador estándar".

¿Qué estoy haciendo mal? ¿Cómo hacerlo bien? Además, busqué documentación en la web pero no encontré nada que valiera la pena, ¿alguien podría recomendar alguna documentación?

* Los nombres pueden no ser completamente precisos porque mi Windows está en portugués.

caracteres especiales ** No, portugués no tiene '3' y '\' como cartas, estos son mal impresa

Respuesta

1

utilizo odbc módulo (incluido en ActiveState Python), pero dio pyodbc y para mí funciona:

#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') 

Por supuesto comentado conexiones también funciona.

Me configurado nothwind como DSN de usuario por lo que probablemente tendrá que configurar su conexión a la base de datos ODBC como DSN de usuario o DSN de sistema, o sin tener que configurar en el Administrador de ODBC puede utilizar ConnectString donde se puede apuntar a su archivo .mdb.

2

Tuve un problema similar con pyodbc aunque no con Access pero con un controlador ODBC diferente.

Esto es lo que me ayudó. http://robertoschiabel.wordpress.com/2008/02/28/windows-x64-32bit-odbc-vs-64bit-odbc/ (en este caso es el artículo de KB apropiada en caso de que este URL desaparece. http://support.microsoft.com/kb/942976/en-us)

Nuestro hardware de servidor anterior murió y tuvimos que volver a desplegar rápidamente en un sistema operativo de 64 bits, porque eso es todo lo que teníamos que estaba disponible. Utilizando la herramienta de administración ODBC normal, agregué el DSN con el nombre apropiado, pero aún así afirmó que no se encontró. Solo cuando ejecuté la versión especial de 32 bits del administrador ODBC, pude definir un DSN que podría encontrar mi script usando pyodbc.

1

Es inteligente hacer una lista de sus conexiones odbc con pyodbc para ver qué está usando. Asegúrese de utilizar el controlador pyodbc 32 bit Python 32 bit apropiado. Si desea utilizar archivos de acceso de 64 bits, debe utilizar MS Acceess de 64 bits que proporciona el controlador.

sources = pyodbc.dataSources() 
keys = sources.keys() 
for key in keys: 
    print key 
Cuestiones relacionadas