Jetzt bin ich doch etwas verwundert, wieso geht dein Testprojekt dann bei mir mit der gleichen
SVN-Zeos-Version und D2009?
Ich habe wie gesagt bei mir aufgrund der fehlenden Komponente nur die TAdvDatetimePicker durch hardgecodete daten ersetzt:
Delphi-Quellcode:
// statt
dm1.q_kunden_insert.ParamByName('Geburtstag').AsDate := dtp_geburtstag.Date;
//halt einfach
dm1.q_kunden_insert.ParamByName('Geburtstag').AsDate := StrToDate('31.12.1899');
Sonst keine Veränderungen am Code.
Auskommentiert habe ich auch nichts, es werden ja schon 25 Params in deinem Testcode übergeben.
Zum Testen habe ich in deinem Programm den Button "N" gedrückt (wohl "neuer Datensatz") und dann auf "S" (wohl "speichern"
).
Da gab es keinerlei Exceptions und die Daten waren auch danach in der
DB (nachgeschaut mit phpMyAdmin).
Im zweiten Test habe ich vor dem Drücken von "S" noch in jedes Feld etwas reingeschreiben (auch ein evtl. "böses" single quote)
Auch dieser Datensatz war ohne
Exception danach korrekt in der
DB.
Als Test-Datenbank hatte ich eine
mySQL 5.5 von ner Xampp-Version für Windows (XP).
Wo liegt jetzt noch der Unterschied?....ausser D2010...das habe ich zum Testen leider nicht.
Letzte Idee: deine libmysql50.dll ist möglicherweise eine zu alte / zu neue / falsche?
Wenn ich es richtig im Hinterkopf habe, gab es bei Zeos schon öfters mal merkwürdige Exceptions, wenn man die falsche
dll verwendet hat.
Test 1:
Nimm erstmal die
DLL aus deiner
mySQL-Installation (liegt im /bin/-Ordner, musst du evtl. noch von libmysql.dll in libmysql50.dll oder libmysql55.dll umbenennen) und kopier diese in den Ordner deiner EXE. Dann starte das Projekt nativ ohne Debugger aus dem Ordner (damit er auch diese
dll nimmt und nicht die, die die
bds.exe / Delphi
IDE zuerst gefunden hat).
Test 2:
Das gleiche wie oben, aber nimm testweise nacheinander die DLLs, die Zeos mitliefert (im lib/
mysql/-Ordner), ausser die 4er DLLs.