Mein Problem ist nicht unbedingt die Datenbank, sondern eher, dass ich mit Schleifen in dem Umfang wie ich sie für diese Abfrage brauche noch ziemlich auf Kriegsfuß stehe.
Und das verstehe ich unter Grundlagen. Außerdem liest du nicht die Dokumentation, denn da ist beschrieben, wie man über eine SQL-Abfrage iteriert:
http://docs.python.org/2/library/sqlite3.html
Das könnte dann in deinem Fall so aussehen, wenn ich das mal in IDLE runterschreibe:
Code: Alles auswählen
>>> import sqlite3
>>> conn = sqlite3.connect(':memory:')
>>> c =conn.cursor()
>>> c.execute('''CREATE TABLE birthdays
(year int, month int, day int, name text)''')
<sqlite3.Cursor object at 0x14b4a40>
>>> birthdays = [(2013, 6, 1, "Klaus"), (2013, 6, 23, "Gabi")]
>>> c.executemany('INSERT INTO birthdays VALUES (?,?,?,?)', birthdays)
<sqlite3.Cursor object at 0x14b4a40>
>>> for row in c.execute('SELECT * FROM birthdays'):
print row
(2013, 6, 1, u'Klaus')
(2013, 6, 23, u'Gabi')
>>> dates = []
>>> from PySide import QtCore
>>> for year, month, day, name in c.execute('SELECT * FROM birthdays'):
dates.append(QtCore.QDate(year, month, day))
>>> dates
[PySide.QtCore.QDate(2013, 6, 1), PySide.QtCore.QDate(2013, 6, 23)]
Ich habe die Befehle, die auf der oben verlinkten Seite stehen, fast 1:1 kopiert und nur an die Gegebenheiten angepasst, dass es sich hier um Jahr, Monat und Tag handelt und das sinnvollerweise ganze Zahlen sein sollten, wobei man auch darüber nachdenken könnte, direkt das als Datum in der DB zu speichern, aber das ist eben eine Design-Frage.
In deinem Programm solltest du das natürlich noch ein wenig in Methoden strukturieren, ich wollte dir nur zeigen, dass es wirklich in ganz vielen Fällen damit getan ist, sich mal 30 Minuten Zeit zu nehmen und die Dokumentation zu lesen.