2009-04-20 9 views

Respuesta

26

Usted ya ha sugerido pyodbc, y estoy de acuerdo con usted.

Me ha dado la menor cantidad de problemas en mi experiencia; He usado pymssql y adodbapi, y cuando esos arrojaron excepciones/problemas creados, cambié el código y lo reemplacé con pyodbc y solucionó el problema o daba mejores mensajes de error para que pudiera depurar más rápido.

Vale la pena mencionar que lo uso principalmente para conectar a MSSQL Server DBs.

17

Uso SQLAlchemy para todos los accesos a bases de datos python. Recomiendo SQLAlchemy.

SA utiliza pyodbc debajo del capó cuando se conecta a las bases de datos del servidor SQL. Utiliza otras bibliotecas DBAPI para conectarse a otra base de datos, por ejemplo cx_Oracle.

Un ejemplo simplista, utilizando SQLAlchemy como se suele utilizar un módulo DBAPI:

import sqlalchemy 

engine = sqlalchemy.create_engine('sqlite:///database.db') 
for r in engine.execute('SELECT * FROM T'): 
    print(r.OneColumn, r.OtherColumn) 

Pero el valor real de SQLAlchemy radica en su ORM y SQL expression language. Eche un vistazo, vale la pena el esfuerzo de aprender a usar.

+0

SQLAlchemy hizo que fuera muy fácil para mí cambiar entre odbc y adodbapi sin cambiar más de dos líneas de código. –

+0

+1 - ¡gracias por esto! –

1

Uso pyodbc en el trabajo y nunca me ha fallado (tenemos varius dbs). Es robusto y rápido.

Se mantiene activamente y una versión de python 3 llegará pronto.

Si desea un software "empresarial" con soporte pagado, puede usar mxODBC.

+0

pyodbc no funciona para mí en Windows Python 3.1.2 :( –

+0

no hay una compilación oficial para Python 3 :(estoy esperando también una. Hay una versión no oficial que tienes que compilarte – hugo24

1

Python 3 ahora es compatible con pyodbc!

+3

¿Cómo es esta una respuesta? Doesn ' t abordar la pregunta OP. – Anoyz

0

Puede dar una vuelta a turbodbc. Desde la versión 1.1.1, oficialmente es compatible con Windows. Hay muchas posibilidades de que sea más rápido que pyodbc por lo que haces.

Cuestiones relacionadas