Brauche Hilfe beim erstellen eines Geburtstagskalenders

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
scoob99
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 17:15

Ich benutze das sqlite-modul aus der Python Standardlib.
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. Deshalb denke ich das es besser ist, wenn ich das so mache, wie ich es gerade mache. Wenn ich mich da nicht so rantraue nur weil ich niemanden fragen möchte, dann lern ich es wohl möglich nie.
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

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. :wink:
scoob99
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 17:15

@EmaNymton: Da hab ich offensichtlich mehr als nur nen bisschen aufm Schlauch gestanden. Tut mir leid wegen der Umstände die ich dir bereitet habe.
Aber auf jeden Fall vielen vielen Dank. Jetzt funktionierts so wie es soll.
Antworten