【发布时间】:2019-07-16 13:41:38
【问题描述】:
我环顾四周,找不到这个特定问题。
所以我有一个 ext config.txt 文件,用于获取存储在 python 程序变量中的值。我在 python 中有一个变量,它以字典形式存储键:值。 (想法是它需要配置设置并从程序执行 sql server 查询)
我的代码如下所示(也显示了打印语句的输出):
driver = config['DRIVER']
server = config['SERVER']
database = config['DATABASE']
trusted = config['Trusted_Connection']
print(driver) # = {ODBC Driver 17 for SQL Server};
print(server) # = server1;
print(database) # = db1;
print(trusted) # = yes
#1. working code
sql_conn = odbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; SERVER=server1; DATABASE=db1; Trusted_Connection=yes')
#2. non working code
sql_conn = odbc.connect('\''DRIVER='+ str(driver) + ' SERVER=' + str(server) + ' DATABASE=' + str(database) + ' Trusted_Connection='+ str(trusted)+'\'')
当我尝试运行第一行时,一切都按预期运行。但是,当我尝试使用第二行时,我得到:
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
这与将dict转换为字符串有关吗?或者也许用 pyodbc?
【问题讨论】:
标签: sql-server python-3.x variables database-connection pyodbc