pyODBC:指定Windows中驱动程序的位置

时间:2013-10-16 10:54:46

标签: python sql windows dll pyodbc

是否可以指定pyodbc查找SQL驱动程序的位置?

我有一个python应用程序需要'SQL Native Client 10.0'驱动程序才能连接到SQL数据库。所以我的连接字符串看起来像:

dsn = 'DRIVER={SQL Server Native Client 10.0};SERVER=localhost;DATABASE=mydatabase;UID=sa;PWD=mypasswd'

con = pyodbc.connect(dsn) 
with con: 
    #do something

一个主要缺点(至少对我而言)是,需要在计算机上安装SQL Native Client 10.0驱动程序并且需要管理员权限。但是,我希望用户可以在没有任何安装的情况下运行我的python应用程序。

在对互联网进行快速研究后,似乎SQL Native客户端10.0依赖于位于C:\ Windows \ System32中的简单DLL(sqlncli10.dll)。那么有可能告诉pyodbc应该在哪里寻找合适的SQL驱动程序吗?

从我的理解来看,pymssql做了类似的事情(FreeTDS驱动程序包含在Python包中,因此不需要进一步安装驱动程序)。但是,在我看来pyobc比pymssql更稳定(社区似乎也更活跃),所以我想用pyodbc与我的数据库进行通信。

1 个答案:

答案 0 :(得分:1)

如果您的应用程序实际使用了

特有的功能
Driver={SQL Server Native Client 10.0}

然后该驱动程序需要在客户端系统上正确安装 。但是,如果您只需要与SQL Server的基本连接,那么

Driver={SQL Server}

包含在标准Windows安装中,可供32位和64位应用程序使用。