I'm using pyodbc on python 2.6 to connect to Microsoft SQL Server 2005. I open a connection, create a couple of cursors:
c1 = connection.cursor()
c2 = connection.cursor()
and then run a query on the first cursor.
c1.execute("select * from foo")
Now I run a query on the second cursor:
c2.execute("select * from bar")
...and I get an error: "Connection is busy with results for another hstmt."
After I do a c1.fetchall()
or c1.close()
then I can use c2.
My question is: Why am I even allowed to create multiple cursors on a connection, if I'm only allowed to use one at a time, and the same one can always be reused? And, if I want to run a query for each row of the results of another query, like this:
for x in c1.execute(...):
for y in c2.execute(...):
do I really have to create multiple connections to the same database?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…