QT Environment & Firebird SQL
-
Guten Morgen zusammen,
seit gestern bin ich dabei mich ein bisschen in QT einzuarbeiten. Ich würde nun gerne Daten aus meiner Firebird Datenbank darstellen. Und da fangen die endlosen Probleme an. Vielleicht als Info. Ich habe das QT5 RC1 Packet installiert und wer mir Tipps geben möchte der sollte sich zuvor mit der neuen Ordner Struktur vertraut machen. Denn die scheint mir im Gegensatz zu der 4.8er Version total anders zu sein.
Der Source Ordner unterteilt sich bei mir wie folgt:
C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\doc
C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\drivers
C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\kernel
C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\modelsInteressant scheint es im folgenden Ordner zu werden:
C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\drivers\ibasein dem sind folgende Dateien:
qsql_ibase.h
qsql_ibase.cpp
qsql_ibase.priIch versuche also erstmal alles zu kompilieren aber da hagelt es schon Fehlermeldungen.
In der Doku steht man sollte folgendes tun:cd %QTDIR%\src\plugins\sqldrivers\ibase
qmake "INCLUDEPATH+=C:\interbase\include" ibase.pro
nmakeBlöd nur, dass sich die Projektnamen geändert haben. Also habe ich das ibase.pro gegen qsql_ibase.pri getauscht.
Ein kleiner Auszug aus der cmd:
C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\drivers\ibase>qmake "INCLUDEPATH+=C:\Program Files (x86)\Firebird\Firebird_2_5\include" qsql_ibase.priC:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\drivers\ibase>nmake
Microsoft (R) Program Maintenance Utility, Version 10.00.30319.01
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten."c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" -f Makefile.Release
Microsoft (R) Program Maintenance Utility, Version 10.00.30319.01
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\msvc2010\bin\moc.exe -DUNICODE -DWIN32 -DQT_NO_EXCEPTIONS -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"C:\Program" -I"File
cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MD -GR -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_NO_EXCEPTIONS -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"C:\
qsql_ibase.cpp
c:\qt\qt5.0.0-rc1\5.0.0-rc1\src\qtbase\src\sql\drivers\ibase\qsql_ibase.h(48) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "QtSql/private/qsqlcachedresult_p.h": No such file or directory
NMAKE : fatal error U1077: ""c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.EXE"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: ""c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe"": Rückgabe-Code "0x2"
Stop.C:\Qt\Qt5.0.0-rc1\5.0.0-rc1\Src\qtbase\src\sql\drivers\ibase>
So, das was ich nun machen kann ist, in der qsql_ibase.h undqsql_ibase.cpp alle Header so zu ändern das es nicht passt. Und hier finde ich fängt die Schweinerei an. Es kann doch nicht sein, dass ich das wirklich tun muss oder?!?!
Naja ich habe mir gestern Abend auf jeden Fall mal die Mühe gemacht und jeden Pfad einer Headers angegeben bis solche Fhler beseitigt waren.
Aber damit keine Langeweile aufkommt ging es noch weiter. Irgendwann fragte er mich nach libs wie gds32.lib. Ich dachte von der wären wir längst weg und würden die fbclient.lib benutzen?! WTF!!!Ok, diese auch noch angegeben. Bis dahin ist übrigens schon eine halbe Stunde vergangen.... Nachdem ich so einige libs wie auch die gdi32.lib angegeben habe will der nun, dass ich die libs aus dem redistributable cv package angebe. Und hier geht es mir eindeutig zu weit!!
Bisher sieht qmake so aus:
qmake "INCLUDEPATH+='C:\Program Files (x86)\Firebird\Firebird_2_5\include'" "LIBS+=-fbclient_ms" "LIBS+=-L'C:\Program Files (x86)\Firebird\Firebird_2_5\bin'" "LIBS+=-L'C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib'" "LIBS+=-L'C:\Program Files (x86)\Firebird\Firebird_2_5\lib'" LIBS+="-fbclient_ms" qsql_ibase.pri
UND es klappt nicht!! Bevor ich diese Scheiße von meinem Rechner werfe und einfach wieder das EntityFramework in Kombi mit C# nehme wollte ich der ganzen Sache hier nochmal eine Chance geben und mal fragen ob jemand weiß woran es liegen könnte??