使用 pyodbc 将 SQL Server 连接到 Python 3

Posted

技术标签:

【中文标题】使用 pyodbc 将 SQL Server 连接到 Python 3【英文标题】:Connect SQL Server to Python 3 with pyodbc 【发布时间】:2016-02-10 07:12:44 【问题描述】:
import pyodbc

cnxn = pyodbc.connect('DRIVER=SQL Server Native Client 11.0;SERVER=LENOVO-PCN;DATABASE=testing;')

cursor = cnxn.cursor()

cursor.execute("select Sales from Store_Inf")
row = cursor.fetchone() 
if row: 
    print (row)

我尝试使用带有模块 pyodbc 的 python 3 来连接 SQL Server Express。 我的代码出错了:

('08001', '[08001] [Microsoft][SQL Server Native Client 11.0]命名 管道提供程序:无法打开与 SQL Server [2] 的连接。 (2) (SQLDriverConnect)')

对此有什么想法吗?

【问题讨论】:

试试SERVER=LENOVO-PCN\\SQLEXPRESS 我试过了,它给了我错误:错误:('28000',“[28000] [Microsoft][SQL Server Native Client 11.0][SQL Server]用户''登录失败。( 18456) (SQLDriverConnect)") 还是需要其他设置但我错过了? 听起来您需要包含UID=PWD= 用于SQL Server 身份验证,或Trusted_Connection=yes 用于Windows 身份验证。 谢谢,问题已解决。 by 'Trusted_Connection=yes' 【参考方案1】:

这是一个使用 Trusted_Connection=yes 对我有用的示例

import pyodbc

conn_str = pyodbc.connect(
    Trusted_Connection='Yes',
    Driver='ODBC Driver 11 for SQL Server',
    Server='SERVER_NAME,PORT_NUMBER',
    Database='DATABASE_NAME'
)

connection = pyodbc.connect(conn_str)

请注意端口号用逗号分隔!

【讨论】:

以上是关于使用 pyodbc 将 SQL Server 连接到 Python 3的主要内容,如果未能解决你的问题,请参考以下文章

pyodbc连接MSSQL执行SQL语句

使用 Execute many from pyodbc 到 SQL Server 的数据框

PyOdbc 无法连接到 sql server 实例

如果 SQL Server 是 MS 2012,则从 Pyodbc 连接到 SQL 14 Azure db

使用 pyodbc 将 Python 连接到 MS SQL Server

使用 pyodbc 将 SQL Server 连接到 Python 3