Hoi Gerard!
Ja, ik kan me de frustratie voorstellen - SQLite is leuk maar minder transparant dan b.v. MySQL (maar daar heb je dan weer een server voor nodig en dat is niet wat jij zoekt).
Ik zit nog midden in de rommel en dozen - mijn huis in de VS was zeker 4x groter dan mijn huidige huis dus het is wat proppen. Moet dus op zoek gaan naar kasten en zaken in de schuur gaan opslaan. Het weer helpt daarbij natuurlijk ook niet mee ... wat een hitte en dan geen A/C hebben ... haha
Voor jouw toepassing is SQLite een van de betere oplossingen. Het geklooi met de datum is inderdaad een dikke ellende - lang leve standaarden he? ;-)
Ik heb nog steeds geen toegang tot m'n spullen - veel zit er nog in dozen enzo - maar ik zal proberen of ik een snelle uitweg voor je kan vinden.
Als eerste kun je bij deze link een hoop info vinden m.b.t. datum/tijd functies voor de SQL in SQlite, maar misschien is dat een beetje te veel van het goede: https://www.sqlite.org/lang_datefunc.html
Voor zover ik me kan herinneren kun je een datum als tekst doorgeven in het formaat "YYYY-MM-DD HH:MM:SS.SSS", waarbij tijd, seconden, en milliseconden optioneel zijn.
Om dan een tijd vanuit Pascal in dat formaat te krijgen, kun je "FormatDateTime" gebruiken. ( http://www.freepascal.org/docs-html/rtl/sysutils/formatdatetime.html ) b.v.:
FormatDateTime('YYYY-MM-DD',Now()))
Waarbij "now()" de huidige tijd/datum is. De tekst zou dan in het juiste formaat doorgestuurd worden naar SQLite. De query kan dan zoiets zijn:
query := 'INSERT MijnDatum="'+FormatDateTime('YYYY-MM-DD',Now()))+'" INTO MijnDatabase';
(hopelijk heb ik niet te veel type fouten gemaakt)
Je moet dan natuurlijk wel weten in welk formaat de datum ingevoerd werd door de gebruiker, maar als je dat toch al opvangt met een TDateTime, dan kun je die waarde plaatsen waar in dit voorbeeld "now()" staat.
Als je echter besluit iets anders te gaan gebruiken dan SQlite, dan zou mijn eerste gedachte zijn om een array van records te gebruiken. Nadeel is wel dat je veel programmeer werk er omheen moet maken. De array kan (zoals je al weet) dus dynamisch zijn en gewoon weggeschreven worden. Maar ja, je moet dan ook steeds wel alles inlezen of doorlezen.
Als je hier kijkt: http://wiki.freepascal.org/Databases
dan zie je dat er ook nog mogelijkheden zijn op basis van text (memory), FoxPro, Paradox en dBase (van vroeger).
Ik heb weleens lopen rommelen met een in-memory dataset maar dat was toch lastig om mee te werken.
FoxPro, dBase en Paradox werken prima, maar hebben weer het nadeel dat je echte SQL queries kunt bouwen.
Voor dBase: http://wiki.freepascal.org/Lazarus_Tdbf_Tutorial
Hopelijk helpt dit je een beetje op weg - en mijn excuses voor de stilte de laatste weken. Het is en blijft een drukte om te verhuizen.