【发布时间】:2020-03-05 15:18:36
【问题描述】:
我一直在玩 pyodbc 并且由于某种原因尝试连接时,如果我从 input() 获取 Server 属性,它无法找到服务器,但是如果我采用相同的服务器名称并将其声明为变量之前手它可以使用完全相同的代码正常工作。有谁知道这里发生了什么?
带有 input() 的代码
import pyodbc
driver = '{ODBC Driver 17 for SQL Server}'
instance = input("Please Enter your SQL Instance: ")
connectionstring = f'Driver={driver}; Server={instance}; Trusted_Connection=yes'
conn = pyodbc.connect(connectionstring)
cursor = conn.cursor()
cursor.execute('SELECT name FROM sys.databases')
for row in cursor:
print(row)
输出 Code output server name from Input()
带变量的代码
import pyodbc
driver = '{ODBC Driver 17 for SQL Server}'
instance = 'DESKTOP-J7PBL8S\\NORTHWIND'
connectionstring = f'Driver={driver}; Server={instance}; Trusted_Connection=yes'
conn = pyodbc.connect(connectionstring)
cursor = conn.cursor()
cursor.execute('SELECT name FROM sys.databases')
for row in cursor:
print(row)
输出 Code output server name from variable
我尝试在输入上使用 str() ,但没有成功。不太确定为什么它不喜欢我从输入中获取服务器名称,因为它返回一个字符串并且连接字符串与有效的代码完全相同。
我有点好奇为什么在任何实际项目中都不想使用 input()
【问题讨论】:
-
在
input提示符下键入实例名称时,您不需要加倍反斜杠。
标签: python-3.x pyodbc