Почему плагин QOCI не работает

Я пытаюсь использовать Qt с QOCI (на самом деле, вместе с другими плагинами), но по какой-то причине не могу. Вот что я сделал и в результате:

1- http://doc.qt.nokia.com/latest/sql-driver.html плагин успешно собран.

2 - скопировал файлы DLL отладки и выпуска плагина в плагины /sqldrivers и OCI.DLL в% WINDIR% \ system32 (плагины /sqldrivers - это то, где находятся другие плагины, такие как QPSQL и QMYSQL)

3- QSqlDatabase:: isDriverAvailable (QOCI) возвращает false, где он возвращает true для QMYSQL и QPSQL. Я сделал то же самое для QMYSQL и QPSQL

4- QStringList qsl = QSqlDatabase:: drivers (); В возвращенном списке строк нет QOCI. однако есть QMYSQL, QPSQL и некоторые другие.

дополнительные проверки: открыл qsqloci4.dll с помощью обходчика зависимостей, невозможно найти 3 dll: 1-QtCore4.dll 2-QtSql4.dll 3-MSVSC80.dll Однако найти их также невозможно при открытии qsqlpsql.dll с помощью обходчика зависимостей. Полагаю, что загрузка dll не удалась из-за зависимостей qsqloci4.dll. Но все же любые идеи приветствуются.

НОВОСТИ

LoadLibrary(_T("C:\\QtSDK\\Desktop\\Qt\\4.7.3\\msvc2005\\plugins\\sqldrivers\\qsqloci4.dll");

а также

LoadLibrary(_T("C:\\QtSDK\\Desktop\\Qt\\4.7.3\\msvc2005\\plugins\\sqldrivers\\qsqlocid4.dll");

не может!!! Пожалуйста, обратите внимание, что оба этих файла существуют по указанному пути.

Я считаю, что Qt также не может загрузить плагин из-за этой ошибки. Теперь вопрос немного другой, но почему LoadLibrary терпит неудачу в этом случае? Есть идеи?

Заранее спасибо.

2 ответа

Как собрать плагин в Windows

Выбор опции "Программист" в Oracle Client Installer с установочного компакт-диска Oracle Client достаточен для сборки плагина.

Создайте плагин следующим образом (здесь предполагается, что Oracle Client установлен в C:\oracle):

set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake -o Makefile oci.pro
nmake

Если вы не используете компилятор Microsoft, замените nmake на make в строке выше.

При запуске приложения вам также необходимо добавить путь oci.dll в переменную среды PATH:

set PATH=%PATH%;c:\oracle\bin

Вам нужно создать папку вызова sqldrivers в каталоге, содержащем ваш exe. Поместите туда все библиотеки DLL драйвера SQL, которые вы используете (для oracle.dll, ociw32.dll, oraociei12.dll, oraons.dll, qsqloci4.dll, qsqlocid4.dll).

Другие вопросы по тегам