QODBC "Driver not loaded" Fehlermeldung
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
QODBC "Driver not loaded" Fehlermeldung
Meine Anwendung bearbeitet Access-Datenbanken.
(Selects, Inserts etc. -> Kein Problem)
Auf meinem Rechner läut alles einwandfrei, sobald ich aber die Anwendung auf einem anderen Rechner starte, kommt folgende Fehlermeldung hoch:
"Driver not loaded" bei jedem DB-Zugriff.
Habe als nächstes den Ordner SQLDRIVERS mit den Dateien: qsqlodbc4.dll,
qsqlodbc4.lib etc. dahin kopiert, wo sich die Executable befindet.
Hat aber nichts gebracht.
Hat jemand eine Lösung für dieses Problem?
MFG Sub
(Selects, Inserts etc. -> Kein Problem)
Auf meinem Rechner läut alles einwandfrei, sobald ich aber die Anwendung auf einem anderen Rechner starte, kommt folgende Fehlermeldung hoch:
"Driver not loaded" bei jedem DB-Zugriff.
Habe als nächstes den Ordner SQLDRIVERS mit den Dateien: qsqlodbc4.dll,
qsqlodbc4.lib etc. dahin kopiert, wo sich die Executable befindet.
Hat aber nichts gebracht.
Hat jemand eine Lösung für dieses Problem?
MFG Sub
Zuletzt geändert von ClassicSubzero am 3. Dezember 2007 14:24, insgesamt 2-mal geändert.
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Forum-Suche?
Das tritt jede Woche mindestens einmal auf, und jede Woche wird auf die Foren-Suche verwiesen. Ist sie wirklich so schwer zu benutzen????
z.B.
http://qtforum.de/forum/viewtopic.php?t ... ver+loaded
Ausserdem steht alles in der Doku
Das tritt jede Woche mindestens einmal auf, und jede Woche wird auf die Foren-Suche verwiesen. Ist sie wirklich so schwer zu benutzen????
z.B.
http://qtforum.de/forum/viewtopic.php?t ... ver+loaded
Ausserdem steht alles in der Doku
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
ich habe mich wahrscheinlich zu früh gefreut, so einfach mit dem QODBC Plugin ist es doch nicht...
Ich habe den "qsqldrivers"- Ordner mit den erforderlichen DLLs für Access DBs in das Verzeichnis kopiert, wo sich
die Executable meines Programms befindet. Die Fehlermeldung kommt trotzdem.
Als nächstes den Library-Pfad gesetzt, mal so:
mal so:
Auf dem Testrechner kommt die Fehlermeldung : "Driver not loaded"
Hat jemand vielleicht noch eine Idee, woran es liegen kann? Sind es Einstellungen in VS 2005?
Habe schon diverse Foren durchforstet..
Ich habe den "qsqldrivers"- Ordner mit den erforderlichen DLLs für Access DBs in das Verzeichnis kopiert, wo sich
die Executable meines Programms befindet. Die Fehlermeldung kommt trotzdem.
Als nächstes den Library-Pfad gesetzt, mal so:
Code: Alles auswählen
int main(int argc, char *argv[])
{
MyQApplication a(argc, argv);
a.addLibraryPath(a.applicationDirPath ());
DB_Converter w;
w.show();
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
return a.exec();
}
mal so:
Code: Alles auswählen
int main(int argc, char *argv[])
{
MyQApplication a(argc, argv);
QString test = a.applicationDirPath();
QString path = test+"/sqldrivers";
a.addLibraryPath(path);
DB_Converter w;
w.show();
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
return a.exec();
}
Hat jemand vielleicht noch eine Idee, woran es liegen kann? Sind es Einstellungen in VS 2005?
Habe schon diverse Foren durchforstet..
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Das Plugin muss im gleichen Mode (Release/Debug) wie deine Applikation compiliert worden sein. Auch die Qt-Version muss passen.
Mit dem Tool 'Filemon' kann man sehen welche Dateien die Applikation zu laden versucht. Ggf. fehlt doch noch eine ODBC-.Dll.
Ggf. auch mal mit Dependency Walker nachschauen.
Mit dem Tool 'Filemon' kann man sehen welche Dateien die Applikation zu laden versucht. Ggf. fehlt doch noch eine ODBC-.Dll.
Ggf. auch mal mit Dependency Walker nachschauen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
Die Plugins habe ich aus dem Verzeichnis E:\QT\4.3.2\plugins\sqldrivers\
für das Testen komplett übernommen, das sind:
qsqlite4.dll
qsqlite4.lib
qsqlited4.dll
qsqlited4.lib
qsqlmysql4.dll
qsqlmysql4.lib
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlodbc4.dll
qsqlodbc4.lib
qsqlodbcd4.dll
qsqlodbc4d.lib
qsqlpsql4.dll
qsqlpsql4.lib
qsqlpsqld4.dll
qsqlpsqld4.lib
Filemon (heute heisst er Procmon.exe) zeigt mir an, dass auf meine EXE zugegriffen wird (Durch Process and Thread Activity - Filter gejagt).
Kiene fehlenden DLLs...
Mit dem DependenceWalker die EXE Debugged :> Keine fehlenden DLLs,
der einzige Hinweis in der Ausgabe:
LoadLibraryA("browseui.dll") returned 0x75F20000.
...
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
Obwohl alles auf meinem Rechner läuft und sich fehlerfrei kompilieren lässt.
Fehlt noch irgendwas? Muss noch irgendeine Einstellung in dem Projekt berücksichtigt werden?
Ich stehe vooll auf dem Schlauch..
für das Testen komplett übernommen, das sind:
qsqlite4.dll
qsqlite4.lib
qsqlited4.dll
qsqlited4.lib
qsqlmysql4.dll
qsqlmysql4.lib
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlodbc4.dll
qsqlodbc4.lib
qsqlodbcd4.dll
qsqlodbc4d.lib
qsqlpsql4.dll
qsqlpsql4.lib
qsqlpsqld4.dll
qsqlpsqld4.lib
Filemon (heute heisst er Procmon.exe) zeigt mir an, dass auf meine EXE zugegriffen wird (Durch Process and Thread Activity - Filter gejagt).
Kiene fehlenden DLLs...
Mit dem DependenceWalker die EXE Debugged :> Keine fehlenden DLLs,
der einzige Hinweis in der Ausgabe:
LoadLibraryA("browseui.dll") returned 0x75F20000.
...
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
Obwohl alles auf meinem Rechner läuft und sich fehlerfrei kompilieren lässt.
Fehlt noch irgendwas? Muss noch irgendeine Einstellung in dem Projekt berücksichtigt werden?
Ich stehe vooll auf dem Schlauch..
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
Die ODBC Treiber sind ab Service pack 1 automatisch installiert, habe ich auch über ODBC-Datenquellen geprüft.
DependenceWalker sagt nur was, wenn eine DLL fehlt, und an der Stelle, wo das Programm die Datenbank öffnet, wird im Textfenster der besagte Text
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
ausgegeben. Ob man noch eine externe LIB braucht werde ich noch forschen müssen :/
DependenceWalker sagt nur was, wenn eine DLL fehlt, und an der Stelle, wo das Programm die Datenbank öffnet, wird im Textfenster der besagte Text
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
ausgegeben. Ob man noch eine externe LIB braucht werde ich noch forschen müssen :/
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
Den besagten Eintrag in der Registry für Testzwecke gelöscht (wird immer neu angelegt, bei jedem Start des Programms), dann lief das Programm, dann wieder nicht, wenn z.B Windows neu gestartet wurde, oder das Programm von einem anderen Speicherstick gestartet wurde, oder wenn man vcredist_x86 installiert. Ein recht komisches Verhalten.
Ich habe auch versucht, die Release-Version des SQL-Browsers (ist bei den Qt Demos zu finden) auch unter denselben Bedingungen zu starten -> dasselbe Theater: Mal hat er die ODBC Treiber, mal nicht
Possible Manifest<->DLL malfunction.
Als nächstes möchte ich meine 4.3.2 Qt-Version neu kompilieren und hoffe, dass alles wieder im Lot ist.
Danke für den Tip mit dem Registry-Eintrag.
MFG Sub
Ich habe auch versucht, die Release-Version des SQL-Browsers (ist bei den Qt Demos zu finden) auch unter denselben Bedingungen zu starten -> dasselbe Theater: Mal hat er die ODBC Treiber, mal nicht
Possible Manifest<->DLL malfunction.
Als nächstes möchte ich meine 4.3.2 Qt-Version neu kompilieren und hoffe, dass alles wieder im Lot ist.
Danke für den Tip mit dem Registry-Eintrag.
MFG Sub
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich hatte auch Probleme wenn ich ein Plugin mit VS2005 und eins mit VS2005SP1 kompiliert habe, auch wegen den doofen manifests.
Ggf. Qt auch mal mit -MT(d) anstatt -MD(d) (mkspecs/win32-msvc2005/qmake.conf anpassen -> embed_manifest_exe und _dll rausnehmen!) kompilieren damit man die Abhängikeit zur msvc runtime nicht mehr hat.
Ggf. Qt auch mal mit -MT(d) anstatt -MD(d) (mkspecs/win32-msvc2005/qmake.conf anpassen -> embed_manifest_exe und _dll rausnehmen!) kompilieren damit man die Abhängikeit zur msvc runtime nicht mehr hat.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
- Beiträge: 21
- Registriert: 26. September 2006 13:38
OK, Qt 4.3.2 neu kompiliert, alle benötigten DLLs in den Programmordner kopiert. Es gab trotzdem dieselbe Fehlermeldung. Die Lösung war dann diese hier:
In den Plugin-Ordner "sqldrivers" müssen die Visual Studio DLLs und die Manifest-Datei kopiert werden. ( ja ja, nicht nur wo die EXE ist, auch in den Plugin-Ordner !!! )
Das Progy funktioniert jetzt.
Ich hoffe das dieses Thema hier einigen das Leben erleichtert und einige Stunden Arbeit spart.
Thx@ Christian81 für Support und Ideen
MFG Sub
In den Plugin-Ordner "sqldrivers" müssen die Visual Studio DLLs und die Manifest-Datei kopiert werden. ( ja ja, nicht nur wo die EXE ist, auch in den Plugin-Ordner !!! )
Das Progy funktioniert jetzt.
Ich hoffe das dieses Thema hier einigen das Leben erleichtert und einige Stunden Arbeit spart.
Thx@ Christian81 für Support und Ideen
MFG Sub
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Das ist komisch da normalerweise die .manfiest - Dateien in die dll/exe eingefügt werden (dafür ist mt.exe da), kann man in den pro-Files mit embed_manifest_dll und embed_manifest_exe festlegen. Sollte aber beides standardmässig aktiviert sein.
/edit: Ausserdem müsste Dir das auch DependencyWalker sagen wenn Du es auf dem Zielsystem aufrufst.
/edit: Ausserdem müsste Dir das auch DependencyWalker sagen wenn Du es auf dem Zielsystem aufrufst.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung