我在下面编写了使用Python从Visual Studio连接SQL Server数据库的代码:
import pyodbc
con = pyodbc.connect('Driver={SQL Server};Server=localhost;Database=ReportServerTempDB;Trusted_Connection=yes')
cur = con.cursor()
cur.execute("select [User], [datetime] FROM [ReportServerTempDB].[dbo].
[DBUpgradeHistory]")
for row in cur:
print (row.user + "," + row.datetime)
#print row[0] + "," + row[1]
cur.close()
con.close()
但是,我收到的错误是这样的:
回溯(最近一次调用最后一次):文件" IronPythonApplication1.py", 第2行,con = pyodbc.connect(' Driver = {SQL 服务器};服务器=本地主机;数据库=的ReportServerTempDB; Trusted_Connection =是') pyodbc.Error:(' 08001',' [08001] [Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SQL Server不存在或访问被拒绝。 (17) (的SQLDriverConnect)&#39)
注意:我对SQL Server进行Windows身份验证,我使用的是VS 2015,而Python环境是IRON Python 64 bit 2.7
编辑: 我更改了驱动程序:Driver = {ODBC Driver 11 for SQL Server} 如果我在我的代码中给出这样的话
for row in cur:
print (row.user)
得到一种新的错误。
追踪(最近一次通话): 文件" IronPythonApplication1.py",第6行,in 对于cur中的行: pyodbc.ProgrammingError:尝试使用关闭的游标。
如何解决这个问题?
答案 0 :(得分:0)
我只是改变了这个和它的工作:
import pyodbc
con = pyodbc.connect('Driver={ODBC Driver 11 for SQL Server};Server=localhost;Database=ReportServer;Trusted_Connection=yes')
cur = con.cursor()
cur.execute("select userid,username from Users")
for row in cur.fetchall():
print (row)