既没有提供 DSN 也没有提供 SERVER 关键字

新手上路,请多包涵

我正在尝试以稍微不同的方式连接到 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

在此处输入图像描述

原文由 Serdia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 928
2 个回答

Windows ODBC 驱动程序管理器对连接字符串中的关键字非常挑剔。它们后面必须紧跟等号,所以 SERVER=... 会起作用,但 SERVER =... 不会。

原文由 Gord Thompson 发布,翻译遵循 CC BY-SA 3.0 许可协议

试试这个格式:

这应该工作

connection = pyodbc.connect("DRIVER={/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s"
                            % (server, database, username, password))

原文由 Vigneshwar Ilango 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题