不使用ODBC将Python连接到SQL Server

5

有没有办法在不安装ODBC等驱动程序的情况下,从Python连接到SQL Server数据库?我需要在客户服务器上执行此操作。我已经通过pymssql从Python建立了与SQL Server的连接,但由于该项目已经被停止维护,所以我正在寻找另一种替代方案。

例如,是否可以链接带有ODBC驱动程序的dll文件?如果可以,我应该去哪里获取它,并如何将其链接到Python中?

2个回答

6
截至2021年8月,你仍可以尝试使用pymssql(https://github.com/pymssql/pymssql)。该项目不再停用,并且重新活跃起来了。
如果使用conda,可以从conda-forge安装conda install pymssqlimport pymssql显示错误:libiconv.so.2: cannot open shared object file,则可以通过conda安装libiconvconda install libiconv 代码示例:
import pymssql

conn = pymssql.connect(server="127.0.0.1", port="33412", user="reader", password="passwd", database="db_name")
cursor = conn.cursor()
cursor.execute('SELECT TOP 10 * FROM table_name')
data=cursor.fetchall()

0

这可能是一个老问题,但对像我这样的许多人来说仍然相关。我通过以下步骤成功解决了这个问题。如果是Windows机器,则应该按照下面列出的步骤操作,以便在没有ODBC设置的情况下使Python连接到MS Sql服务器。

  1. 需要安装/设置至少 SQL Server Native Client 11.0,因为这是 SQL2012 原生客户端工具的最后一个版本。自 2016 年起,它不再提供,并且更喜欢使用 msoledbsql 18.xx.xx 或更高版本。
  2. 您可以通过搜索此内容从互联网上下载,或者我使用 Choco 为我安装了此内容。 choco install SQL2012.NativeClient。如果您不知道或没有 choco,请只从 MSFT 网站搜索并下载 MSI。
  3. 确保您在 ODBC 驱动程序选项卡中看到类似于此的版本 enter image description here
  4. 确保您的连接字符串引用了与该驱动程序名称完全相同的名称,例如, mssql+pyodbc://{YOUR-SQL-SERVER-INSTANCe}?driver=SQL+Server+Native+Client+11.0
  5. 当然,您的 Python 需要 pyodbc 库和 sqlalchemy 才能使用此内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接