QT 4, Firebird RDBMS + Windows (qsqlibase.dll)

By Jarosław Jan Pyszny on Maj 18th, 2007

Wieki temu wspominałem o tym jak sprawić automagicznie by program pisany dla Qt dogadywał się z Firebirdem (plugins qsqlibase.dll). Środowisko MS Windows nie jest moim podstawowym środowiskiem pracy, więc jak ostatnio przyszło mi ponownie przerabiać temat to trochę miałem problem z przypomnieniem sobie jak to zrobić.

W sumie proces konfiguracji/instalacji nie jest trudny, poniższy opis dotyczy wersji Qt/GPL i oczywiście MS Windows 2k i nowszych (tak na przyszłość by znów sobie nie przypominać ;) )):

Wpierw trzeba zainstalować MinGW (Środowisko GCC dla Windows) – najlepiej pliki pobrać z SF (MinGW-[wersja].exe).

Po zainstalowaniu MinGW sprawdzić i ewentualnie dopisać do zmiennej PATH podkatalog bin oraz skopiować lub zmienić nazwę mingw32-make.exe (znajduje się ww. podkatalogu) do/na make.exe

Następnie należy pobrać i zainstalować Qt/GPL dla Windows (instalatorowi jeśli nie znajduje wskazać katalog z naszą wersją MinGW)

Dodać zmienną QTDIR (np. jeśli Qt został zainstalowany w katalogu c:\qt to zmienna nadać wartość QTDIR=c:\qt) i oczywiście dodać podkatalog bin do zmiennej PATH

wylogować się i zalogować ponownie – zmiennym środowiskowym zostaną nadane nowe wartości.

Ze strony Firebirda instalujemy serwer baz, o ile nie udostępniamy serwera na innym komputerze. Jeśli już mamy serwer (jak to jest w moim przypadku) wystarczy ściągnąć wersje skompresowaną zipem (potrzebujemy tylko plików z podkatalogu include oraz lib no i fbclient.dll).

Co by nie cudować później ze ścieżkami kopiujemy zawartość podkatalogu include firebirda (ib_util.h, ibase.h, iberror.h) do podkatalogu include MinGW oraz podobnie z podkatalogu lib (fbclient_ms.lib i ib_util_ms.lib) do lib MinGW, dodatkowo skopiować fbclient_ms.lib na gds32_ms.lib a na koniec jeszcze z podkatalogu bin (o ile nie jest już zainstalowany) fbclient.dll do binMinGW albo innego ze zmiennej PATH

Uruchamiamy konsole (cmd), wykonujemy
cd %QTDIR%\src\plugins\sqldrivers\ibase
qmake
make

po chwili powinniśmy uzyskać qsqlibase.dll
(dir %QTDIR%\plugins\sqldrivers), no i to tyle.

Uwaga: w przypadku komputera innego niż nasz musimy z programem exe (nie licząc oczywiście qsqlibase.dll) dostarczać bibliotekę fbclient.dll, najlepiej umieszczać ją w tym samym katalogu co program.

Wersje użyte w opisie:

  • MinGW – 5.1.3
  • Qt – 4.2.3
  • Firebird – 1.5.4