QT4, MYSQL5 Verbindung schlägt ohne Grund fehl
Verfasst: 20. April 2006 20:30
Hi
ich wollte mich grad in meinem frisch installierten QT4.1.2 mit meiner MySQL 5 Datenbank unter Mac OSX verbinden.
Den MySQL treiber für QT hab ich als Plugin compiliert.
-> /usr/local/Trolltech/Qt-4.1.2/plugins/sqldrivers/libqsqlmysql.dylib
das Plugin scheint alle benötigten Bibliotheken zu haben :
amini:/usr/local/Trolltech/Qt-4.1.2/plugins monte$ otool -L sqldrivers/libqsqlmysql.dylib
sqldrivers/libqsqlmysql.dylib:
libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/Trolltech/Qt-4.1.2/lib/QtSql.framework/Versions/4.0/QtSql (compatibility version 4.1.0, current version 4.1.2)
/usr/local/Trolltech/Qt-4.1.2/lib/QtCore.framework/Versions/4.0/QtCore (compatibility version 4.1.0, current version 4.1.2)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.5)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 19.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 92.0.0)
In meinem Projekt file habe ich die Zeile QT += sql eingefügt
Im construcktor meiner Klasse habe ich nun folgendes :
// **********************************************************
// Setting up Database connection
// **********************************************************
qRunDb = QSqlDatabase::addDatabase("QMYSQL");
qRunDb.setHostName("localhost");
qRunDb.setDatabaseName("qrun");
qRunDb.setUserName("dbuser");
qRunDb.setPassword("thisisnotmypassword");
if( qRunDb.open() )
qDebug() << "Database not opened : " << qRunDb.lastError().text();
als Ausgabe bekomme ich nun einen leeren Fehlerstring :
-> Database not opened : " "
wenn ich qRunDb.lastError() ausgebe kommt :
Database not opened : QSqlError(-1, """", """")
Hat jemand ne Ahnung was das bedeuten könnte ?
Oder wie kann ich feststellen ob das Plugin überhaupt geladen wurde.
Was ich noch gelesen habe ist das QT nicht statisch kompiliert worden sein darf. Hab ich imho nicht gemacht aber wie kann ich das Prüfen ?
MfG
Martin
ich wollte mich grad in meinem frisch installierten QT4.1.2 mit meiner MySQL 5 Datenbank unter Mac OSX verbinden.
Den MySQL treiber für QT hab ich als Plugin compiliert.
-> /usr/local/Trolltech/Qt-4.1.2/plugins/sqldrivers/libqsqlmysql.dylib
das Plugin scheint alle benötigten Bibliotheken zu haben :
amini:/usr/local/Trolltech/Qt-4.1.2/plugins monte$ otool -L sqldrivers/libqsqlmysql.dylib
sqldrivers/libqsqlmysql.dylib:
libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/Trolltech/Qt-4.1.2/lib/QtSql.framework/Versions/4.0/QtSql (compatibility version 4.1.0, current version 4.1.2)
/usr/local/Trolltech/Qt-4.1.2/lib/QtCore.framework/Versions/4.0/QtCore (compatibility version 4.1.0, current version 4.1.2)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.5)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 19.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 92.0.0)
In meinem Projekt file habe ich die Zeile QT += sql eingefügt
Im construcktor meiner Klasse habe ich nun folgendes :
// **********************************************************
// Setting up Database connection
// **********************************************************
qRunDb = QSqlDatabase::addDatabase("QMYSQL");
qRunDb.setHostName("localhost");
qRunDb.setDatabaseName("qrun");
qRunDb.setUserName("dbuser");
qRunDb.setPassword("thisisnotmypassword");
if( qRunDb.open() )
qDebug() << "Database not opened : " << qRunDb.lastError().text();
als Ausgabe bekomme ich nun einen leeren Fehlerstring :
-> Database not opened : " "
wenn ich qRunDb.lastError() ausgebe kommt :
Database not opened : QSqlError(-1, """", """")
Hat jemand ne Ahnung was das bedeuten könnte ?
Oder wie kann ich feststellen ob das Plugin überhaupt geladen wurde.
Was ich noch gelesen habe ist das QT nicht statisch kompiliert worden sein darf. Hab ich imho nicht gemacht aber wie kann ich das Prüfen ?
MfG
Martin