Seite 1 von 1

[solved] QSqlDatabase: QMYSQL driver not loaded

Verfasst: 13. Januar 2009 12:57
von Slow
Hallo,
gleich vorweg ich bin ein Noob.

1) Ich habe den Creator geladen installiert funkt super.
2) Habe Qt 4.4.3 mit folgenden parametern erstellt:
configure.cache

Code: Alles auswählen

-debug-and-release 
-qt-sql-mysql 
-plugin-sql-mysql
qmake.cache

Code: Alles auswählen

QMAKE_QT_VERSION_OVERRIDE = 4
OBJECTS_DIR     = tmp/obj/debug_shared
MOC_DIR         = tmp/moc/debug_shared
RCC_DIR         = tmp/rcc/debug_shared
sql-plugins    += mysql sqlite
styles         += windows plastique cleanlooks windowsxp windowsvista motif cde
imageformat-plugins += gif tiff jpeg
TMPPATH            = $$quote($$(INCLUDE))
QMAKE_INCDIR_POST += $$split(TMPPATH,";")
TMPPATH            = $$quote($$(LIB))
QMAKE_LIBDIR_POST += $$split(TMPPATH,";")
CONFIG         += dist-config large-config medium-config minimal-config small-config full-config build_all debug incremental create_prl link_prl depend_includepath QTDIR_build
QT_BUILD_PARTS  = libs tools examples demos docs translations
QMAKESPEC       = C:/Qt/4.4.3/mkspecs/win32-g++
ARCH            = windows
QT_BUILD_TREE   = C:/Qt/4.4.3
QT_SOURCE_TREE  = C:/Qt/4.4.3
QMAKE_MOC       = $$QT_BUILD_TREE/bin/moc.exe
QMAKE_UIC       = $$QT_BUILD_TREE/bin/uic.exe
QMAKE_UIC3      = $$QT_BUILD_TREE/bin/uic3.exe
QMAKE_RCC       = $$QT_BUILD_TREE/bin/rcc.exe
QMAKE_DUMPCPP   = $$QT_BUILD_TREE/bin/dumpcpp.exe
QMAKE_INCDIR_QT = $$QT_BUILD_TREE/include
QMAKE_LIBDIR_QT = $$QT_BUILD_TREE/lib
Und wenn ich dann folendes probiere:

Code: Alles auswählen

#include "elektrotechnik.h"
#include <QtSql>
#include <QDebug>

Elektrotechnik::Elektrotechnik(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("nv-elektrotechnik");
    db.setUserName("XXXX");
    db.setPassword("XXXX");
    if(!db.open())
        {
        qDebug() << "DB-Fehler";
        }

    //    connect(ui.actionArtikel, SIGNAL(clicked()),artikel(),SLOT(artikel()));
}

Elektrotechnik::~Elektrotechnik()
{

}
Bekomme ich folgende Ausgabe:

Code: Alles auswählen

Starting C:/Qt-Projects/NV-Elektrotechnik/debug/NV-Elektrotechnik.exe
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE
DB-Fehler 


Habe nach lösungen in diesem Faorum gesuch aber nicht gefunden.

Was mache ich falsch?

Bitte um Hilfe, Danke.

Verfasst: 13. Januar 2009 17:18
von Christian81
Wurde der Treiber/Plugin wirklich kompiliert. Sind auch alle benötigten DLLs im Pfad? Mal im Plugin-Cache nachgeschaut: http://doc.trolltech.com/4.4/plugins-ho ... ugin-cache

Verfasst: 14. Januar 2009 08:55
von Slow
Im Pfad C:\Qt\4.4.3\plugins\sqldrivers sind folgende Dateien:

Code: Alles auswählen

libqsqlite4.a
libqsqlited4.a
libqsqlmysql4.a
libqsqlmysqld4.a
qsqlite4.dll
qsqlited4.dll
qsqlmysql4.dll
qsqlmysqld4.dll
Und im Plugin-Cache sind die auch registriert.

Vielleicht noch ne Idee?

lg
Slow

Verfasst: 16. Januar 2009 11:51
von NoRulez
Du könntest folgendes probieren:

Code: Alles auswählen

C:/Qt-Projects/NV-Elektrotechnik/debug/NV-Elektrotechnik.exe 
C:/Qt-Projects/NV-Elektrotechnik/debug/sqldrivers/qsqlmysql4.dll
C:/Qt-Projects/NV-Elektrotechnik/debug/[MYSQLDRIVERS]
Zusätzlich in dem Verzeichnis wo die *.exe liegt noch die MySQL dll's hin kopieren, musst eventuell einzeln probieren welche davon nicht benötigt werden, damit Du nicht unnötige Libs dabei hast. Diese Problem hatte ich mit PostgreSQL auch.

Ich würde Dir weiteres den DependencyWalker empfehlen

LG NoRulez

Verfasst: 21. Januar 2009 13:19
von peter999
Wenn Du Visual Studio 2005 oder 2008 nimmst, solltest Du
CONFIG-=embed_manifest_dll
in die MYSQL.PRO eintragen, sonst wird möglicherweise die Datei auf manchen PCs nicht geladen. Danach neu erstellen

steht in der Doku von QT unter DEPLOYING

Wenn es der Entwicklungsrechner ist, sollte es gleich gehen, wenn nicht müssen die Laufzeitbibliotheken, die libmysql.dll, und die Qt-Dlls im Pfad liegen..

Gruß
Peter

Verfasst: 23. Januar 2009 13:52
von Slow
Danke für die Unterstützung, aber als Anfänger sieht man oft vor lauter Wald die Bäume nicht.

Unter folgendem Link hab ich die Lösung des Problems gefunden:
http://wiki.qtcentre.org/index.php?titl ... sing_MinGW

lg
Slow