【发布时间】:2023-12-01 15:37:01
【问题描述】:
我正在尝试以稍微不同的方式连接到 SQL 数据库:使用和不使用参数。为什么不使用参数可以正常工作,但使用参数 - 给我一个错误。 我犯了语法错误吗? 我浏览了每封信,什么也没看到。
import pandas as pd
import pyodbc
#parameters:
server = 'SQLDEV'
db = 'MEJAMES'
#Create the connection
conn = pyodbc.connect('DRIVER={SQL Server};server =' + server + ';DATABASE = ' + db + ';Trusted_Connection=yes;')
# query db
sql = """
select top 10 PolicyNumber, QuoteID, ProducerName from tblQuotes
"""
df = pd.read_sql(sql,conn)
df
但如果我做同样的事情但不使用参数,那么它工作正常:
import pandas as pd
import pyodbc
#parameters:
#server = 'SQLDEV'
#db = 'MEJAMES'
#Create the connection
conn = pyodbc.connect("DRIVER={SQL Server};server=SQLDEV;database=MEJAMES;Trusted_Connection=yes;")
# query db
sql = """
select top 10 PolicyNumber, QuoteID, ProducerName from tblQuotes
"""
df = pd.read_sql(sql,conn)
df
【问题讨论】:
-
尝试删除
server关键字后面的空格,即... ;server=' + server + ...而不是... ;server =' + server + ...。 -
成功了。我不敢相信 python 是这么挑剔的语言。我什至不会考虑这个。你能回答吗,我会接受正确的。非常感谢您的帮助。
-
在这种情况下挑剔的是 SQLServer,而不是 Python,这并不重要..
-
@thebjorn - 实际上,罪魁祸首是 Windows ODBC 驱动程序管理器,而不是 SQL Server ODBC 驱动程序。任何其他 ODBC 驱动程序都会发生同样的事情。
-
@GordThompson 很酷,我今天学到了一些新东西 :-)
标签: python python-3.x pyodbc dsn