Seite 1 von 1

SQL Statement Wrapper...

Verfasst: Dienstag 28. Februar 2006, 16:12
von jens
Für SQLite hab ich meinen SQL Wrapper umgebaut bzw. angepasst. Er ist allerdings noch nicht richtig getestet...

Sourcen: http://pylucid.python-hosting.com/file/ ... atabase.py

Was ich mich nun Frage, in wie fern würde es wohl Sinn machen die Ergebnisse (also fetchall) statt mit return, mit yield als Generator zurück geben zu lassen?

Re: SQL Statement Wrapper...

Verfasst: Dienstag 28. Februar 2006, 18:15
von gerold
jens hat geschrieben:Was ich mich nun Frage, in wie fern würde es wohl Sinn machen die Ergebnisse (also fetchall) statt mit return, mit yield als Generator zurück geben zu lassen?
Hi Jens!

Das ist gefährlich, da man bei "fetchall" keinen Generator erwartet. Im Gegenteil. Man erwartet sich eine Liste oder ein Tupel, in dem man nach belieben Daten raus holen kann.

Wie wäre es mit einem zusätzlichen Parameter für "fetchall" um die Verwendung von Generatoren explizit einzuschalten. So geht es aber auch:

Code: Alles auswählen

for row in iter(cursor.fetchone, None):
   print row
Da "fetchone" None zurück gibt, wenn keine Zeile mehr vorhanden ist, kann "None" als Abbruchkriterium für "iter()" eingesetzt werden.

lg
Gerold
:-)

Verfasst: Dienstag 28. Februar 2006, 18:19
von gerold
Hi Jens!

Intern, also im Hintergrund, kannst du ja Generatoren verwenden. Es hätte sogar Vorteile für "fetchone". Du musst dich nur darum kümmern, dass bei "fetchall" KEIN Generator zurück gegeben wird. Also "tuple()" anwenden.

lg
Gerold
:-)

Verfasst: Mittwoch 1. März 2006, 10:06
von jens
Hm. Vielleicht lass ich das lieber mal :) Ich kenn mich mit Generatoren eh nicht so richtig aus und weiß nicht, welche Vorteile diese überhaupt haben...