Почему плагин 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).