Hallo,
ich habe eine kleine DLL geschrieben, welche mithilfe der Delhi ADO-Objekte ein paar sehr einfache Funktionen zur Verfügung stellt um per ADO auf Datenbanken zu zu greifen (nicht viel mehr als Connect, ExecSQL und OpenSql). Diese soll es Nutzern erlauben per in unserem Programm integrierter Scriptsprache mit ihren Datenbanken zu spielen.
Das funktioniert im großen und ganzen auch, allerdings bastele ich gerade ein kleines Beispielscript, welche ein paar Daten in eine Access-Datenbank schreibt und wieder ausliest. Hierbei gibt es ein paar Schwierigkeiten mit, wie sollte es anders sein, DateTime Werten.
Ich kann diese Problemlos per INSERT INTO in dem Format 'yyyy-mm-dd hh:nn:ss' in die Datenbank schreiben. Will ich aber in einer SELSECT im gleichen Format wieder einen Wert abfragen, dann beschwert Access sich, dass das Abfrageformat nicht passen zum Datentyp des Feldes ist, denn in Access muss der String korrekterweise so formatiert werden: #yyyy-mm-dd hh:nn:ss#, also mit # anstelle von '.
Dummerweise erkennen die ADO-Komponenten diesen Datumswert dann nicht mehr als gequoted an und interpretieren die Doppelpunkte als Beginn von Parametern, so das Delphi das Query nicht durchlässt, weil ja die Werte zu seinen vermeindlichen Parametern fehlen.
Nun kann ich vielleicht für diesen Fall einen alternativen Datumsstring für Access zusammensetzen (ich glaube man könnte auch einen Punkt anstelle eines Doppelpunktes nehmen), da ich aber nicht weiß, was für schräge Datenbanken die späteren Nutzer der DLL verwenden und wofür bei denen so alles Doppelpunkte verwendet wird, würde ich den ADO-Komponenten gerne austreiben mit Parametern zu arbeiten, bzw. diese selbst erkennen zu wollen. Leider habe ich nichts entsprechendes Gefunden.
Habt ihr vielleicht eine Idee?
Gruß
Klabautermann