"无效的游标状态"执行包含USE语句的批处理时出错

时间:2016-09-23 15:57:07

标签: python sql sql-server pypyodbc

我尝试在Windows上使用pypyodbc 1.3.3和Python 3.5从Microsoft SQL数据库中检索数据但是得到了pypyodbc.ProgrammingError' [24000] [Microsoft] [SQL Server Native Client 11.0]无效的游标状态&#39 ;使用以下代码:

import pypyodbc
conn = pypyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=database;UID=uid;PWD=pwd')
cursor = conn.cursor()
sql = '''USE database;
SELECT R0
FROM table;'''
cursor.execute(sql)
results = cursor.fetchone()
print(results)

SQL在Microsoft SQL Server Management Studio中工作,连接和执行工作在我编写的另一个脚本中插入到同一个数据库中,如果我删除也可以工作

results = cursor.fetchone()

到目前为止,我尝试了cursor.fetchone(),cursor.fetchall()和list(cursor),但都产生了相同的结果,这让我相信命令本身并不是问题所在。 根据{{​​3}},这意味着没有一个打开的光标,但我可以得到它的描述,所以根据我的理解,必须有。

1 个答案:

答案 0 :(得分:0)

我有类似的问题。我能够通过删除“USE数据库”声明来解决这个问题。

您已在此处连接到您的数据库:

conn = pypyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=database;UID=uid;PWD=pwd')