Si devuelvo un cursor desde una función automáticamente se me cierra el cursor

Manel i Elena manelelena en manelelena.com
Vie Oct 15 17:09:01 CEST 2004


Si ejecuto el siguiente código

"""
import psycopg
db = psycopg.connect(host="bichejo", user="mcebolla", database="uoc")
cursor=db.cursor()
cursor.executes("select 1")
"""

Tod funciona perfectamente pero si hago esto:

"""
def func():
 import psycopg
 db = psycopg.connect(host="bichejo", user="mcebolla", database="uoc")
 return db.cursor()

cursor=func()
cursor.executes("select 1")
"""

Entonces me sale el siguiente mensaje de error

"""
  File "<stdin>", line 1, in ?
psycopg.InterfaceError: already closed
"""

¿ No se puede devolver un cursor mediante una función ?, si hago esto mismo 
con MySQLdb todo va bien.

Por cierto, he probado exactamente lo mismo con pypgsql  y me pasa lo mismo.

¿ Alguna idea ?.

Manel.




Más información sobre la lista de distribución Python-es