是否可以指定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与我的数据库进行通信。
答案 0 :(得分:1)
如果您的应用程序实际使用了
特有的功能Driver={SQL Server Native Client 10.0}
然后该驱动程序需要在客户端系统上正确安装 。但是,如果您只需要与SQL Server的基本连接,那么
Driver={SQL Server}
包含在标准Windows安装中,可供32位和64位应用程序使用。