Manchmal fällt man vom Glauben ab, wie schlampig Leute testen und keiner merkt den Pfusch.
Ich, geschworen nie wieder ein Paradox-DB Projekt in die Welt zu setzen, suchte nach eine Alternative um BDE & Paradox loszuwerden.
Paradox ist die Datenbank aus DOS-Zeiten die Textfelder mit maximal 255 Zeichen zulässt, sich selbst fragmentiert und generell nicht sonderlich robust ist, immer größer wird, aber einfach und schnell zu nutzen, damals 1999.
Ich finde schnell eine saubere Implementierung eines Wrapper für Delphi 6, passt fast, sogar mit Tests und mag auch den neusten Spross der Familie aka Sqlite 3.22.
Da baue ich das Ding erst einmal um damit Delphi 5 Support da ist, das ging aber schnell.
Investiere über einen Tag um ein altes Projekt umzurüsten und es endet damit es nicht so recht funktionieren mag.
Füge dann primitiven UTF8-Support hinzu, ein bissl Luxus muss sein, man weiß ja nie.
Gucke mir wieder die Beispiele an, lerne das int und INTEGER in SQL das gleiche ist und plötzlich gehts.
Wieder zurück zum Projekt, mmh immer noch der Fehler.
Er liefert beim Auslesen der Antwort beim Cast von numerischen Datentypen stets Exception zurück mit dem Hinweis, es wäre doch vom Typ String.
Wieder ein Tag versenkt und finde das Problem:
Die Typen werden beim Auslesen ermittelt dummerweise wird hier ein String von Sqlite zurückgegeben, der Wrapper vergleicht ob der Datentyp bekannt ist.
Wenn nicht passt ist das wohl ein String.
Warum keine Zahlen für Typen Verwendung fanden, keine Ahnung, aber warum vergleicht man die Deklaration des Datentyp der Tabelle auf Exaktheit?!
Es macht dann einen gewalten Unterschied zwischen einem CREATE TABLE person(id integer) und CREATE TABLE person(id INTEGER).