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?
SQL Statement Wrapper...
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Jens!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?
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
lg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
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

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

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.