¿Puedo usar múltiples cursores en una conexión con pyodbc y MS SQL Server?
Estoy usando pyodbc en python 2.6 para conectarme a Microsoft SQL Server 2005. Abro una conexión, creo un par de cursores:
c1 = connection.cursor()
c2 = connection.cursor()
y luego ejecute una consulta en el primer cursor.
c1.execute("select * from foo")
Ahora ejecuto una consulta en el segundo cursor:
c2.execute("select * from bar")
... y aparece un error: "La conexión está ocupada con resultados para otro hstmt".
Después hago unc1.fetchall()
oc1.close()
entonces puedo usar c2.
Mi pregunta es: ¿por qué incluso se me permite crear múltiples cursores en una conexión, si solo se me permite usar uno a la vez, y el mismo siempre se puede reutilizar? Y, si quiero ejecutar una consulta para cada fila de los resultados de otra consulta, así:
for x in c1.execute(...):
for y in c2.execute(...):
¿Realmente tengo que crear múltiples conexiones a la misma base de datos?