Ich versuche gerade ein Programm zur Zeitmessung zu schreiben. Vorgestellt hätte ich mir das folgendermaßen:
Ich habe ein Programm im Systray. Immer wenn ich mit der Linken Maustaste draufklicke geht eine kleine Form auf, die mich ein paar Details fragt (da ich es für die Arbeit schreibe, habe ich Sachen gedacht wie Kategorie:Projekt/Internes/Pause/Lager/Regie/EDV... , Topic: eben ein Titel oder eine kleine Beschreibung, Langbeschreibung: .... ). Mit Enter/OK Button wir bestätigt und das Teil läuft im Hintergrund und misst die Zeit. Wenn wieder draufgeklickt wird, geht die Form wieder auf und das Spiel beginnt von vorne. Der vorherige Eintrag wird dann mit Datum, Startzeit, Endzeit, Daten, benötigte Zeit geloggt.
So hätte ich ziemlich gute Stundenaufzeichnungen und müsste mich am Ende des Tages nicht hinsetzen und mir die Daten aus den Fingern saugen. Am Ende vom Monat möchte ich dann einen Report haben, der mir entweder eine Detailierte Auflistung bietet (Langer Report mit vielen Einträgen), oder eben ein kleiner Report, der mir nur die Tage aufschlüsselt mit Gesamtstunden, Urlaub, usw.
Meine Frage ist nun: wie speichert man die Daten am Besten?
Meine ersten Gedanken waren SQLite oder XML, aber ich habe mit beiden keine Erfahrung. XML wäre mir persönlich sympathischer, da ich die Daten notfalls auch mit einem Editor ansehen/ändern könnte. Leider wird XML sicher lahm, wenn ich mit 10 Einträge / Tag * ~ 330 Tage rechne. Also rund 3300 Datensätze / Jahr.
Ich bin mir sicher, das SQLite hier performanter wäre und die Möglichkeiten zum Filtern (allein schon wegen dem Report) auch besser wären. Nur habe ich hier NULL Erfahrung - gerade in Bezug auf des Datenbankdesign (Tabellen, Verknüpfungen, Primärschlüssel, ...) mache ich mir da große Sorgen. Ausserdem habe ich SQLite noch nie unter Lazarus installiert. Es wird sicher eine Hilfe im Netz geben, aber die muss ich noch suchen.

Die letzte Möglichkeit wäre sicherlich, einzelne Records in eine Datei zu schreiben, aber ich kann mir nicht vorstellen, dass dies viel Sinn macht. Es ist sicherlich nicht performant, die Filter- und Suchmöglichkeiten müsste ich alle selber schreiben, usw.
Ich wäre jedenfalls sehr dankbar, wenn ihr mir ein paar Tips geben könnten und hier fröhlich mitdiskutiert. Ich bin schon auf eure Meinungen und Anregungen gespannt. Dankeschön und viele Grüße,