[英]pyodbc connection to MS SQL Server running on a docker container
[英]Can I use multiple cursors on one connection with pyodbc and MS SQL Server?
我在python 2.6上使用pyodbc连接到Microsoft SQL Server2005。我打开一个连接,创建几个游标:
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(...):
我真的必须创建到同一数据库的多个连接吗?
据这个家伙
游标对象用于执行SQL语句。 ODBC和pyodbc允许每个连接使用多个游标,但并非所有数据库都支持此功能。
并且可以确定并发游标可以受以下支持:
import pyodbc
connection = pyodbc.connect(...)
how_many = connection.getinfo(pyodbc.SQL_MAX_CONCURRENT_ACTIVITIES)
print(how_many)
我自己的实践从未遇到过使用多个数据库游标的必要性。 这类问题过去通常通过复杂的SQL查询(联接,组)解决。 或者(如果可以忽略性能问题),可以使用几个简单的查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.