我在 python 2.6 上使用 pyodbc 连接到 Microsoft SQL Server 2005。我打开一个连接,创建几个游标:
c1 = connection.cursor()
c2 = connection.cursor()
然后在第一个游标上运行查询。
c1.execute("select * from foo")
现在我在第二个游标上运行查询:
c2.execute("select * from bar")
...我收到一个错误:“连接正忙于另一个 hstmt 的结果。”
在我做一个c1.fetchall()
或c1.close()
之后我可以使用c2。
我的问题是:为什么我什至可以在一个连接上创建多个游标,如果我一次只允许使用一个,并且始终可以重复使用同一个游标?而且,如果我想对另一个查询结果的每一行运行一个查询,如下所示:
for x in c1.execute(...):
for y in c2.execute(...):
我真的必须创建到同一个数据库的多个连接吗?