eNotatki - jarek.blog.pyszny.eu

Z cyklu drobny prosty błąd, którego ciężko znaleźć.

Linuksowa odmiana RDBMS Firebird może pracować w dwóch trybach: Superserver (FirebirdSS) lub Classic server (FirebirdCS). Tym razem ze względów wydajnościowych wybrałem edycję FirebirdCS. Instalacja systemu, RDBMSa, konfiguracja przeszła bez większych problemów. Testy na wersji przed produkcyjnej również. Problemy zaczęły się po oddaniu do użytku produkcyjnego. Od czasu do czasu program kliencki przestawał się uruchamiać, kończąc swoje działanie dosyć enigmatycznym komunikatem. Standardowa diagnostyka, w tym sprawdzenie Firebirda, konfiguracji systemów, firewalli, nie przyniosła rozwiązania. Wyszukiwarka też nie podpowiedziała nic ciekawego.

Czytaj dalej »

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

27 maja, 2006

Darmowe wersje (niedarmowych) baz

Napisane w: Bazy danych (0)

Dorastanie PostgreSQLa i MySQLa spowodowało reakcję świata komercyjnego - zaczęli udostępniać darmowe wersje swoich baz.

I tak o to mamy (przynajmniej jeśli chodzi o Linuksa):

Wydaje się, że najlepszą licencje daje IBM. Co do wydajności należało by porównać na jakimś bardziej rozbudowanym projekcie :)

Z free wersji jest jeszcze Ingres, czyli prapra przodek PostgreSQLa oraz Firebird (pochodna Borland Interbase 6)

02 maja, 2006

Porównanie baz danych

Napisane w: Bazy danych (0)

Ciekawe porównanie możliwości i zgodności ze standardem (O)RDBMS - PostgreSQL, MySQL, DB2, MS SQL Server, Oracle.

Podejście drugie - tym razem połączenie do bazy - o dziwo poszło, tylko szkoda, że w GPLowej wersji dla Windows brak pluginów do Postgresqla i Firebirda. Trzeba sobie dokompilować albo ściągnąć.
Na pierwszy ogień poszedł Firebird i od razy problem z brakiem biblioteki gds32_ms. Po zagooglowaniu udało się znaleźć 'fbclient_ms.lib' i 'fbclient.dll' ( z Firebird 1.5.x). Mała zmiana nazwa, trochę automagii i po chwili gotowy plugin 'qsqlibase.dll'. Połączenie działa.
Teraz kolej na Postgresqla :)
Można oczywiście robić obejście poprzez ODBC, ale jak są stery natywne to po co?

 
SPAMowi mówimy nie BYKOM-STOP - Poprawna pisownia i ortografia w Internecie