Qt4.1.2 mit MySQL Server 5.0 WindowsXP

Alles rund um die Programmierung mit Qt
Antworten
hafwil
Beiträge: 20
Registriert: 22. Mai 2006 16:18

Qt4.1.2 mit MySQL Server 5.0 WindowsXP

Beitrag von hafwil »

Hallo!

Ich versuche nun schon seit einiger Zeit mich mit einer MySQL Datenbank zu verbinden. Anfangs hatte ich Probleme mit dem erstellen des Plugins. Dies hat jetzt irgendwie geklappt. Mit configure hab ich es nicht geschafft, das Plugin zu erstellen. Nach durchlesen zahlreicher Forenbeiträge hab ich es geschafft, das Plugin manuell zu compilieren. Es scheint aber so, als könnte ich den Treiber trotzdem nicht laden. Jedenfalls bekomme ich in der Applikation immer den Fehler "Driver not loaded". In %QTDIR%\plugins\sqldrivers gibt es jetzt die entsprechenden dlls (qsqlmysql.dll und qsqlmysqld.dll) und auch die libs (libqsqlmysql.a und libqsqlmysqld.a). Standardmäßig ist in der OpenSource Version ja noch der SQLite und der ODBC Treiber mit dabei. Vorher konnten diese noch geladen werden, jetzt sind diese nur mehr bei Release Versionen sichtbar. Im Debug modus hab ich gar keine Treiber mehr :-( (Abfrage mit QSqlDatabase::drivers() )
Wichtig ist für mich allerdings nur der mysql Treiber. Hab ich etwas übersehen, beim verwenden der Treiber? Ich inkludiere einfach <QtSql> und verwende dann <QSqlDatabase>. Wenn ich das Plugin manuell compiliere muss ich dann noch weitere Dinge machen?
Bin folgendermaßen vorgegangen:
1. cd c:\mysql\lib\opt
2. reimp -d libmysql.lib
3. dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a
4. cd %QTDIR%\src\plugins\sqldrivers\mysql
5. qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=-LC:\MYSQL\LIB\OPT -lmysql" mysql.pro
6. make
Hab ich hier etwas vergessen?
Mit configure hab ich eigentlich nur probiert das plugin hinzuzufügen und hab es dann wieder aus der Konfiguration genommen, damit ich wieder erfolgreich compilieren kann:

1. configure -qt-sql-mysql -I.... -L....
make
-> Fehler
2. configure -no-sql-mysql
make
3. configure -plugin-sql-mysql -I... -L....
make
-> Fehler
4. configure -no-sql-mysql
make

Hab ich mir hier etwas zerstört?

LG Willi

PS: zur Zeit muss ich in der .pro Datei immer "QT += sql" hinzufügen, damit die SQL Header richtig inkludiert werden. Wenn ich jetzt aber qmake -project mache, dann ist diese Zeile natürlich wieder weg... Gibt es hier eine Möglichkeit, dass man das nicht immer manuell machen muss?
hafwil
Beiträge: 20
Registriert: 22. Mai 2006 16:18

Beitrag von hafwil »

Habe gerade irgendwo gelesen, dass die MySQL Unterstützung mit der 4.1.3 er Version besser sein soll. Hat das schon jemand probiert? Lohnt es sich auf die neue Version umzustellen? Wieviel Aufwand ist das? Sourcen ins Verzeichnis kopieren und mit make durchlaufen lassen? Bin Qt Neuling :roll:
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

hafwil hat geschrieben:Habe gerade irgendwo gelesen, dass die MySQL Unterstützung mit der 4.1.3 er Version besser sein soll. Hat das schon jemand probiert? Lohnt es sich auf die neue Version umzustellen? Wieviel Aufwand ist das? Sourcen ins Verzeichnis kopieren und mit make durchlaufen lassen? Bin Qt Neuling :roll:
Ich bin auch "Qt Neuling" .... 2-3 Monaten ... darum habe ich zuerst mit Sqlite angefangen :D ... alles im richtigen Gradient ... ( http://de.wikipedia.org/wiki/Gradient_%28Mathematik%29 ) schrittweise...

Und nach 2 monaten habe ich mein erstes projekt verfoeffentlicht...
http://sourceforge.net/projects/qtexcel-xslt/ doch bis heute habe ich noch niee eine zeile mysql mit qt4 geschreiben... sondern nur sqlite3 die sehr schnell ist .... aber das unglaublicher ... ich update trotzdem die mysql datenbank auf dem entfernter mysql server via xml & php5 .... so dass die web user auch was sehen.....
joergb
Beiträge: 21
Registriert: 13. Juli 2005 13:11
Kontaktdaten:

Beitrag von joergb »

Hallo,

mein Problem ist ähnlich, allerdings mit Qt 4.1.3 und PostgreSQL unter XP. Im Debug-Mode zeigt drivers() nicht mal SQLite und ODBC an, im Release-Mode fehlt mir PSQL. Qt wurde mit configure -plugin-sql-psql -I "C:\Programme\PostgreSQL\8.1\include" -L "C:\Programme\PostgreSQL\8.1\lib" ohne Probleme übersetzt. Ich vermute die gleiche Ursache.

Gruß, Jörg
Antworten