2010-12-03 3 views
3

Disons que j'ai le code suivantdifférence entre un curseur en boucle et en boucle cursor.fetchall dans la ligne des requêtes

cursor = connection.cursor() 
cursor.execute(query) 

après ce point, je veux faire une boucle sur toutes les ResultSet.

Quelle est la différence entre

for row in cursor: 
    print row[0] 


for row in cursor.fetchall(): 
    print row[0] 

I 

je devine que première utilise la méthode fetchOne.

1) Le premier exécute une requête à chaque itération. 2) utilise-t-il la méthode fetchone ou la méthode fetchall 3) ce qui est mieux pour un gros résultat?

Répondre

2

La capacité d'itérer sur un curseur est une extension optionnelle telle que définie par PEP 249, et la sémantique exacte dépend de l'adaptateur de base de données utilisé.

+0

J'ai vérifié cela avec debugsqlshell et il semble qu'il exécute la requête dans la méthode cursor.execute. (essayé sur postgresql) – yilmazhuseyin

Questions connexes