Почему плагин QOCI не работает - PullRequest
0 голосов
/ 03 июня 2011

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

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

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 ]

0 голосов
/ 21 ноября 2013

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

0 голосов
/ 27 июля 2011

Как создать плагин в 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
...