C++::QT:Problem bei der Datenbankanbindung

SuperSonik

Erfahrenes Mitglied
Hi Leute,
ich würde gerne mittels Qt auf eine MySQL-Datenbank zugreifen.
Ich benutze die freie Version von QT 4.1 unter Windows.

Die folgenden Zeilen habe ich praktisch aus der Dokumentation entnommen:
Code:
	        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
	        db.setHostName("localhost");
	        db.setDatabaseName("test_data");
	        db.setUserName("root");
	        db.setPassword(" ");
	        bool ok = db.open();
eingebunden habe ich:

Code:
#include <QtSql/QSqlDatabase>
#include <QtSql/QODBCDriver>
Nun bekomme ich beim Aufruf von make folgendes:

Code:
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Dokumente und Einstellungen/rolka/workspace/wetterdaten'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.1.0/include/QtCore" -I"C:/Qt
/4.1.0/include/QtGui" -I"C:/Qt/4.1.0/include" -I"." -I"C:/Qt/4.1.0/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.1.0/mkspecs/win32-g++" -o release\wetterdaten.o wetterdaten.cpp
C:\Qt\4.1.0\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.1.0/include/QtCore" -I"C:/Qt/4.1.0/include/Qt
Gui" -I"C:/Qt/4.1.0/include" -I"." -I"C:/Qt/4.1.0/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.1.0/mkspecs/win32-g++" -D__GNUC__ -DWIN32 wetterdaten.h -o release\moc_wetterdaten.cpp
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.1.0/include/QtCore" -I"C:/Qt
/4.1.0/include/QtGui" -I"C:/Qt/4.1.0/include" -I"." -I"C:/Qt/4.1.0/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.1.0/mkspecs/win32-g++" -o release\moc_wetterdaten.o release\moc_wetterdaten.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\wetterdaten.exe" release\wetterdaten.o release\moc_wet
terdaten.o  -L"C:\Qt\4.1.0\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0x71c):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase17defaultCo
nnectionE'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0x7f1):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase11addDataba
seERK7QStringS2_'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0x8f5):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase11setHostNa
meERK7QString'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0x9d3):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase15setDataba
seNameERK7QString'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0xab1):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase11setUserNa
meERK7QString'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0xb8f):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase11setPasswo
rdERK7QString'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0xbd6):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabase4openEv'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0xd8f):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
release\moc_wetterdaten.o(.text$_ZN13Ui_MainWindow13auslesenDateiE7QString[Ui_MainWindow::auslesenDatei(QString)]+0xee9):moc_wetterdaten.cpp: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\wetterdaten.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Dokumente und Einstellungen/rolka/workspace/wetterdaten'

Was mache ich falsch?! Den ODBC Treiber habe ich korrekt installiert.
Welche Datenbanken werden von der freien Version überhaupt unterstützt?
Statt ODBC die MySql Sachen von QT zu benutzen wäre mir genause recht. - Hab schon beides ausprobiert, ohne Erfolg.

Gruß,

SuperSonik
 
Hi.

Anscheinend hast du vergessen gegen die Qt Sql Bibliothek zu linken. Wenn du eine qmake .pro Datei verwendest mußt du die Zeile
Code:
QT += sql
hinzufügen.

Gruß
 
Zurück