在Windows上从python连接到odbc的常用方法?

时间:2009-04-20 13:41:51

标签: python windows odbc pywin32 pyodbc

我应该使用什么库来连接到Windows上的python中的odbc?对于odbc来说,pywin32有一个很好的选择吗?

我正在寻找记录良好,健壮,积极维护等的内容。pyodbc看起来不错 - 还有其他吗?

6 个答案:

答案 0 :(得分:26)

您已经建议 pyodbc ,我将同意您的意见。

根据我的经验,它给了我最少的问题;我使用了pymssqladodbapi,当那些抛出异常/创建的问题时,我换掉了代码并用pyodbc替换它,它修复了问题,或者提供了更好的错误信息,所以我可以调试更快。

值得一提的是,我主要用它来连接 MSSQL Server 数据库。

答案 1 :(得分:17)

我使用SQLAlchemy进行所有python数据库访问。我强烈推荐SQLAlchemy。

SA在连接到SQL Server数据库时使用pyodbc。它使用其他DBAPI库连接到其他数据库,例如cx_Oracle。

一个简单的例子,使用SQLAlchemy就像通常使用DBAPI模块一样:

import sqlalchemy

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

但SQLAlchemy的真正价值在于其ORMSQL expression language。看一下,学习使用它是值得的。

答案 2 :(得分:6)

另一种选择是pypyodbc,它是用纯Python编写的。它可以看作是pyodbc模块的重新实现 - 只有大约1800行代码,这有利于维护。

这是Hello World sample of accessing mssql in Python

答案 3 :(得分:1)

我在工作中使用pyodbc它从未让我失望(我们有varius dbs)。它坚固而快速。

它得到了积极维护,很快就会出现python 3版本。

如果您希望“企业”软件获得付费支持,则可以使用mxODBC

答案 4 :(得分:1)

你可以给turbodbc一个旋转。从1.1.1版开始,它正式支持Windows。对于你所做的事情,它很可能比pyodbc更快。

答案 5 :(得分:0)

现在pyodbc支持Python 3!