¿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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta