[solved] QSqlDatabase: QMYSQL driver not loaded

Verschiedenes zu Qt
Antworten
Slow
Beiträge: 3
Registriert: 6. November 2008 14:39
Kontaktdaten:

[solved] QSqlDatabase: QMYSQL driver not loaded

Beitrag 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.
Zuletzt geändert von Slow am 23. Januar 2009 13:54, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Slow
Beiträge: 3
Registriert: 6. November 2008 14:39
Kontaktdaten:

Beitrag 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
NoRulez
Beiträge: 208
Registriert: 19. Juni 2007 15:43

Beitrag 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
peter999
Beiträge: 24
Registriert: 12. Januar 2006 11:28

Beitrag 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
Slow
Beiträge: 3
Registriert: 6. November 2008 14:39
Kontaktdaten:

Beitrag 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
Antworten