Witam, jako, że długi czas już tego nie robiłem, ale po instalacji nowej paczki Qt musiałem na nowo skonfigurować biblioteki odpowiedzialne za sterowanie połączeniem z bazą danych Oracle. W dokumentacji Qt nie wiedzieć czemu sposób jest… niepełny, przynajmniej w wypadku Windowsa. Dlatego też, ze względu na słabą pamięć, jak i dla potomnych pełny poradnik jak poprawnie postawić bazę na localhoscie Oracle, a także jak poprawnie, szybko i bezboleśnie przejść przez proces tworzenia bibliotek qsqloci.dll.

Jeżeli spotkałeś się z następującym komunikatem podczas używania Qt:

to ten wpis jest właśnie dla Ciebie.

Przygotowywanie serwera Oracle.

Cały proces przebiega dosyć intuicyjnie. Na początku ściągam paczkę Oracle Database Express Edition 11g Release 2. Po zaakceptowaniu warunków i ściągnięciu wypakowuję całą zawartość wraz z katalogiem DISK1 instaluję na domyślnych ustawieniach. Aby sprawdzić, czy wszystko działa, jeżeli nie zmieniałeś portów i zostawiłeś wszystko na ustawieniach domyślnych, to po kliknięciu w ikonę „Get Started” w starcie powinieneś/powinnaś zobaczyć okno główne do zarządzania sesjami i użytkownikami bazy danych.

Następnie pobieram Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (32-bit) client. Podobnie, jak wyżej akceptuję, ściągam i instaluję praktycznie na domyślnych ustawieniach. Z jednym wyjątkiem. Zauważyłem, że gdy podpiąłem do laptopa dysk zewnętrzny instalator chciał tam się rozpakować. Więc tylko się upewniam, że rozpakuje się w najprostszej ścieżce tj. „C\app\Username„. Z możliwych pakietów do wyboru wybieram Runtime.

Teraz przechodzimy do instalacji Qt.

Jeżeli posiadałeś wcześniej Qt, niż samą bazę, to nic się nie stało. Musisz tylko się upewnić, że do paczki z nr wersji masz zainstalowany element Source. Możesz to sprawdzić modyfikując pakiet Qt z poziomu panelu sterowania lub wejść bezpośrednio w Qt Maintenance Tool, albo po prostu sprawdź, czy w katalogu wersji znajduje się katalog Src.

Ze względu na to, że mam już wszystko zainstalowane pokażę Ci teraz na zrzucie ekranu jaki element jest wymagany, abyś mógł/mogła rozpocząć tworzenie bibliotek qsqloci.

Mingw, przygotwanie projektu, tworzenie bibliotek

Teraz kiedy mamy już wszystko przygotowane szukamy pliku oci.pro. Jeżeli postępowałeś na domyślnych ustawieniach to powinien on znajdować się w

C:\Qt\5.9.2\Src\qtbase\src\plugins\sqldrivers\oci

Samemu katalogowi całemu pamiętamy, aby zdjąć atrybut „tylko do odczytu” oraz zastosować to do plików i podkatalogów.

Jego zawartość jest taka:

Twoim zadaniem jest zakomentowanie wiersza

 

Dygresja

Jeżeli tego nie robiłeś wcześniej zapewne już wiesz, że przy użyciu komendy qmake oci.pro sktukowało to spotkaniem się z problemem pokroju

Project ERROR: Library ‚oci’ is not defined.

Dlatego też istotne jest zakomentowanie tego wiersza. Dla początkującego – wiersz w plikach *.pro robimy poprzez postawienie znaku #.

Uruchamiamy Qt 5.9 for Desktop (MinGW 5.3.0 32 bit). Przechodzimy do katalogu już nam znanego oci za pomocą komendy

Teraz mamy dwa, a w zasadzie 3 sposoby dodania zmiennych do makefile.debug i release. Pierwszy to wpisanie po prostu po kolei poleceń w cmd

lub też wywołanie jednej długiej komendy z poleceniem

na forum spotkałem się z tym, aby dodać też trzeci parametr, którego nie zastaniemy w tych plikach, to jest -loci. U mnie niestety to nie działało, więc w następnym kroku dodaję ten parametr ręcznie.

Otwieramy pliki Makefile.Release i Makefile.Debug w notatniku i wierszach zaczynających się od LIBS szukamy naszej ścieżki z drugiego parametru i zaraz za nią po spacji dopisujemy -loci. Zapewne domyślasz się, że trzecim sposobem jest własna ingerencja w powyższe pliki i uzupełnienie powyższymi ścieżkami.

Pamiętaj!

U mnie była to ścieżka C:\app\Bartosz , u Ciebie będzie tam Twoja nazwa użytkownika, a oprócz tego możesz już być w posiadaniu nowszego wydania, więc numer następnego katalogu też ulegnie zmianie.

Po pomyślnym wykonaniu polecenia qmake oci.pro otrzymasz informację:

Nie przejmuj się tym i wykonaj następne polecenie:

Porada

Jeżeli kiedyś już podejmowałeś próby tworzenia bibliotek i skończyły się one fiaskiem spróbuj najpierw przed poleceniem qmake użyć komendy mingw32-make clean. Jeżeli nadal nie będzie działaś musisz odinstalować i zainstalować ponownie Qt

Przykładowy wydruk konsoli po poprawnym przeprowadzeniu powyższej konfiguracji i uruchomieniu polecenia mingw32-make

Następnie wykonujesz polecenie mingw-32 install, oto jego wyniki przykładowe

Gratulacje, właśnie poprawnie skonfigurowałeś serwer Oracle, a także stworzyłeś biblioteki potrzebne do pracy dla Qt, czyli qsqloci dla QOCI.

Materiał opracowany na podstawie:
– własnego doświadczenia
– https://forum.qt.io/topic/80928/problem-building-oci-plugin-for-qt-5-9-1/12
– https://forum.qt.io/topic/84654/brakujący-plik-qtsqldrivers-podczas-ładowania-oci/3




Dodaj komentarz

%d bloggers like this: