Den kanoniske måde er at bruge den indbyggede cursor iterator.
curs.execute('select * from people')
for row in curs:
print row
Du kan bruge fetchall()
for at få alle rækker på én gang.
for row in curs.fetchall():
print row
Det kan være praktisk at bruge dette til at oprette en Python-liste, der indeholder de returnerede værdier:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Dette kan være nyttigt for mindre resultatsæt, men kan have dårlige bivirkninger, hvis resultatsættet er stort.
-
Du skal vente på, at hele resultatsættet bliver returneret til din klientproces.
-
Du spiser måske en masse hukommelse i din klient for at holde den opbyggede liste.
-
Det kan tage et stykke tid for Python at konstruere og dekonstruere listen, som du alligevel straks vil kassere.
Hvis du ved, at der er en enkelt række, der returneres i resultatsættet, kan du kalde fetchone()
for at få den enkelte række.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Endelig kan du sløjfe over resultatsættet og hente en række ad gangen. Generelt er der ingen særlig fordel ved at gøre dette i forhold til at bruge iteratoren.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()