4

是否可以指定 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 依赖于一个简单的 DLL (sqlncli10.dll),它位于 C:\Windows\System32 中。那么是否有可能告诉 pyodbc 它应该在哪里寻找合适的 SQL 驱动程序?

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

4

1 回答 1

1

如果您的应用程序实际使用特定于

Driver={SQL Server Native Client 10.0}

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

Driver={SQL Server}

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

于 2013-11-08T09:30:16.457 回答