Seite 1 von 1

sql driver not loaded

Verfasst: 26. August 2009 23:00
von anno1988
Hallo zusammen,
ich habe ein Problem mit dem Sqlite Driver von Qt.

Und zwar wenn ich bei mir auf dem entwicklungssystem mein programm starte wird der sql driver ohne probleme geladen.

da habe ich noch die qt version 4.5 mit dem qt creator 1.0.0.

Auf dem, anderen testsystem (ist alles windows xp) hingegen habe ich das neue 4.5.2 mit dem neusten qt creator installiert.

allerdings kann auf dem neuen system der sqlite treiber einfach nicht gefunden werden. Allerdings liegen die dateien "qsqlite4.dll" und "qsqlited4.dll" im "C:\Qt\2009.03\qt\plugins\sqldrivers" ordner.

was ich denke, dass es in diesem punkt passen sollte.

hier mal meine umgebungsvariable "PATH" vom windows xp:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

es ist schon sehr komisch, dass das nicht gefunden werden kann.

wenn ich die beiden dateien allerdings in den ordner lege, in dem die compilierte exe-datei liegt funktioniert es auch nicht.

ich hoffe mir kann da jemand helfen.

ich starte auf dem neuen system die exe ohne die IDE. also ich habe einfach mal zum testen die fehlenden dll dateien in den installationsordner der exe-datei kopiert und gestartet. der rest funktioniert auch alles, bis auf das laden des treibers.

gruß anno1988

Verfasst: 27. August 2009 08:09
von NoRulez
1.) Mit was ist der 2te SQL Treiber kompiliert worden.
2.) Hast es es schon probiert, den Treiber am Testsystem (WinXP) in einem Unterordner namens "sqldrivers" der *.EXE Datei abzulegen?

LG NoRulez

Verfasst: 27. August 2009 09:15
von anno1988
NoRulez hat geschrieben:1.) Mit was ist der 2te SQL Treiber kompiliert worden.

LG NoRulez
Der Treiber auf dem neuen Testsystem ist ganz normal von der Installation des Qt Frameworks. compiliert habe ich diesen nicht.
NoRulez hat geschrieben: 2.) Hast es es schon probiert, den Treiber am Testsystem (WinXP) in einem Unterordner namens "sqldrivers" der *.EXE Datei abzulegen?
Nein, das ahbe ich bis jetzt noch nicht versucht. Ich hatte nur mal versucht diesen in einem Unterordner plugins abzulegen. aber das probiere ich mal aus.

edit:

was ich allerdings nicht ganz verstehe. auf meinem bisherigen system läuft die exe-datei auch ohne ein kopieren der treiber-dll-datei in ein verzeichnis.
auf dem neuen system macht es das standardmäßig hingegen nicht.

warum es da so einen unterschied gibt, weiß ich natürlich nicht.

Verfasst: 27. August 2009 09:42
von NoRulez
Falls Du ihn noch nicht hast, lade Dir mal den Dependency Walker runter und ziehe den SQL Treiber in das Fenster.
Vielleicht sind irgendwelche Abhängigkeiten offen.

LG NoRulez

Edit: Was mir anfangs auch hin und wieder passiert ist, ist das ich vergessen habe die mingwm10.dll in das Verzeichnis der *.exe zu kopieren

Verfasst: 27. August 2009 09:44
von Christian81
anno1988 hat geschrieben:
was ich allerdings nicht ganz verstehe. auf meinem bisherigen system läuft die exe-datei auch ohne ein kopieren der treiber-dll-datei in ein verzeichnis.
auf dem neuen system macht es das standardmäßig hingegen nicht.
Weil die Qt-Installdir defaultmässig durchsucht wird.

Verfasst: 27. August 2009 09:58
von anno1988
NoRulez hat geschrieben: Edit: Was mir anfangs auch hin und wieder passiert ist, ist das ich vergessen habe die mingwm10.dll in das Verzeichnis der *.exe zu kopieren
also bei mir wurde das so angemerkt und eine fehlermeldung ausgegeben.

ohne diese datei startet mein programm gar nicht.
Christian81 hat geschrieben:
anno1988 hat geschrieben:
was ich allerdings nicht ganz verstehe. auf meinem bisherigen system läuft die exe-datei auch ohne ein kopieren der treiber-dll-datei in ein verzeichnis.
auf dem neuen system macht es das standardmäßig hingegen nicht.
Weil die Qt-Installdir defaultmässig durchsucht wird.
naja, aber macht es dann einen unterschied, mit welcher qt version ich das programm compiliert und später auf einem anderen rechner ausführe?

bsp.:

- compiliert mit der qt version 4.5 und das verzeichnis ist c:\qt\2009.01

-ausgeführt auf einem anderen rechner mit qt version 4.5.2 aus dem verzeichnis c:\qt\2009.03

meiner meinung nach sollte das ja eigentlich irgendwo in der registry stehen, dass immer das richtige verzeichnis gewählt wird.

...oder ist das nicht so und das programm sucht auch auf dem neuen system nach dem ordner c:\qt\2009.01 und findet dann aber ja nichts.

Verfasst: 27. August 2009 10:09
von NoRulez
Warum kopierst Du die entsprechenden DLL's in das Verzeichnis deiner EXE Datei?

LG NoRulez

Verfasst: 27. August 2009 10:28
von anno1988
NoRulez hat geschrieben:Warum kopierst Du die entsprechenden DLL's in das Verzeichnis deiner EXE Datei?

LG NoRulez
ja, das mache ich noch, trotzdem ist es ja eleganter wie ich finde, wenn man das framework installiert und man dann einfach das programm starten kann ohne noch groß dateien herumkopieren zu müssen.

Verfasst: 27. August 2009 10:39
von Christian81
anno1988 hat geschrieben: naja, aber macht es dann einen unterschied, mit welcher qt version ich das programm compiliert und später auf einem anderen rechner ausführe?
Nein - wieso? Das Qt-Install-Dir ist eben ein zusätzliches Suchdirectory für die Plugins. Wo ist das Problem?
Immer wieder der gleiche Müll... http://doc.trolltech.com/4.5/plugins-ho ... extensions

Verfasst: 27. August 2009 11:19
von NoRulez
anno1988 hat geschrieben:meiner meinung nach sollte das ja eigentlich irgendwo in der registry stehen, dass immer das richtige verzeichnis gewählt wird.

...oder ist das nicht so und das programm sucht auch auf dem neuen system nach dem ordner c:\qt\2009.01 und findet dann aber ja nichts.
Es wird nicht in der Registry gesucht sondern in den Pfaden die mittels PATH gesetzt sind.
Wie auch bei den restlichen Libraries udgl. wird mehr oder weniger das erst beste genommen.
anno1988 hat geschrieben: naja, aber macht es dann einen unterschied, mit welcher qt version ich das programm compiliert und später auf einem anderen rechner ausführe?
Du kannst beispielsweise nicht ein mit Qt 4.4.3 kompiliertes Programm mit Qt 4.5.2 DLL's ausführen.
Zwischen Qt 4.5.x 'er weiß ich es nicht mit Gewissheit, würde jedoch auch Sinn machen.

LG NoRulez

Verfasst: 27. August 2009 14:17
von Markus
Unter Deploying an Application on Windows ist eigentlich alles erklärt, besonders im Abschnitt Qt Plugins.