Russian Qt Forum

Qt => Базы данных => Тема начата: Fir1 от Апрель 17, 2008, 00:38



Название: Запуск приложения, Driver not loaded.
Отправлено: Fir1 от Апрель 17, 2008, 00:38
Всем добрый что-там-у-Вас)
Ситуация следующая, написал приложеньице с Qt4, которое работает с СУБД Oracle 10g. Собрал, запустил ( на той же машине где и сервер оракловский стоит), работает, как ни странно =)
Перекинул на соседнею машинку под ВинХП, где нет Оракла ентого и в помине, укомплектовал Oracle Instant Client с сервера забугорного скачанным, прописал в переменную PATH путь до него. В общем всё по руководству оффициальному. Ан нет! Не робит) При подключении к базе, QSqlDatabase.lastError() выдает сообщение, мол, звиняй Driver not loaded.
В чем я не прав тут, подскажите?


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: pastor от Апрель 17, 2008, 00:41
А что говорит поиск по форуму насчет Driver not loaded?


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: Fir1 от Апрель 17, 2008, 00:49
Поиск вещал мне побробовать этот самый Instant Client, также закинуть в подпапку /sqldrivers собранные мною dll для Oracle и саму оракловскую oci.dll в корень с exe'шником.
Всё сделал, по нулям... Вот и призадумался.
Завтра еще раз проверю всё, может где напутал что конечно, но вроде всё было сделано четко.


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: Fir1 от Апрель 17, 2008, 09:14
Ура! Проблема решилась, не те библиотечки в /sqldrivers закинул. Теперь я вышел на след уровень - ошибка QOCI : Unable to logon. Инстант клиент все еще стоит. В паре веток на форуме по этой ошибке люди куда-то пропадали в процессе обсуждения. Доживших до решения не было вовсе?)

PS. Попробовал поставить Oracle Client XE (не Instant), хотя это и не вариант решения проблемы. Такой же результат (предварительно снес упоминания об инстант клиенте из пременных, как и реккомендованно.
Записей в логе на сервере о попытках подключения не появлялось, что в целом предсказуемо.

PSS. У меня тут зародились смутные подозрения. А Express Edition вообще поддерживает работу по сети? Что-то про это не указано в пресс-релизе.

PSSS. Как я понял работать по сети может. Понял это подключившись с помощью SQL Command Line.


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: Fir1 от Апрель 17, 2008, 16:30
Продолжаю ведение бортового журнала)
17.04.2008 н.э., 4 часа дня:
Удалось запустить приложение вместе с установленным Oracle Client. Достаточно было просто закинуть файл tnsnames.ora в папке и ЕХЕ-шником. Не прописываю путь к нему ни в какие переменные причем.

Вопрос: как теперь приучить работать без Oracle Client'а. Например, с Instant Client.

Как уже писал я выше все необходимые операции, а именно:
- распаковка.
- добавление пути в переменную PATH
происзвел.
Больше на офф. сайте ничего не сказано делать.
Что не так?


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: $pirit от Апрель 17, 2008, 17:19
А в сервисах листенер зарушен и вообще запущены ли службы оракла?
Покажи что находится в файле "sqlnet.log" должен появится в папке с прогой, если что-то не так.


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: Fir1 от Апрель 19, 2008, 13:00
Всё чудесатей и чудесатее, запустил с Инстант Клиентом. Оказывается оно не желало запускаться, т.к. в пути к онному встречались языческие кириллические символы)


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: lit-uriy от Апрель 19, 2008, 18:41
ну это нормально для большенства софтин, я уже давно взял за правило  имена с досовскими ограничениями писать.


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: Вячеслав от Апрель 19, 2008, 23:26
ну это нормально для большенства софтин, я уже давно взял за правило  имена с досовскими ограничениями писать.
Эх блин ;) Заходи в гости ;) Тут одно умное чудило пытаеться (у нас в конторе) СТП пропихнуть, где прописано что прога должна быть помещена в папку с названиеи соответствующим ее(проги) децимальному номеру ;)  шо-то типа ДНИЯ.12345678-0987.123-01 ВАХ :( Два раза был послан в пеший эротический тур но никак не успокоиться ....
ЗЫ - сорри за офтоп


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: lit-uriy от Апрель 20, 2008, 07:02
Эх блин ;) Заходи в гости ;) Тут одно умное чудило пытаеться (у нас в конторе) СТП пропихнуть, где прописано что прога должна быть помещена в папку с названиеи соответствующим ее(проги) децимальному номеру ;)  шо-то типа ДНИЯ.12345678-0987.123-01 ВАХ :( Два раза был послан в пеший эротический тур но никак не успокоиться ....
ЗЫ - сорри за офтоп

работал я во многих КБ, там так и сделано, на серваке, но не для прог, а для данных, это нормально если нет человека(ов) который бы "АСУ документов" занимался
Встречал в жизни, правда одну, в Тюмени, контору, где 8 человек занимаются только этой темой, там были разные варианты доступа к серваку, в частности через веб интерфейс, а в реалиях все в БД лежит, очень удобно было работать. Да еще и система контроля версий для всех файлов.
Такой интерфейс на всех или почти на всех ОСьках можно реализовать.

По рекомендуй нечто подобное может реализуют в вашей конторе. а для запуска локальных прог меня именно там и научили, вчастности не ставить проги в штатные програмные файлы, у нас для этого отдельный раздел на диске был в корень все и ставили, акромя мелкосовтовских программ


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: dbuserQt от Март 31, 2017, 09:56
Добрый день!

Аналогичная ситуация, только для приложения подключающего в PostgreSQL.
Приложение написано на Qt4, работает с СУБД PostgreSQL 9.5. На компьютере Win XP с Qt Creator и собранными драйверами все работает.

Но при запуске на чистой win7 через lastError выводится Driver not loaded Driver not loaded

Через Dependency Walker проверены все зависимости, добавлены ненайденные библиотеки. Путь к приложению из латинских букв. Не помогло выделение драйвера БД в отдельный каталог ./sqldrivers.

Подскажите, пожалуйста, что нужно поставить на чистой Windows чтобы приложение работало? или как правильно собрать приложение в Qt Creator?


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: dbuserQt от Март 31, 2017, 10:12
В данном случае, играет роль в какой платформе был собран проект?
Сейчас приложение собирается под Win XP x32, тестируется на Win7 x64. СУБД стоит на Ubuntu 16. При этом приложение корректно работает под Win XP, а под Win 7 не находит драйвер. Если запускать в Win 7 x64 нужно собирать библиотеки (драйвера) под x64?

Подсмотрено в теме http://www.prog.org.ru/topic_17100_0.html (http://www.prog.org.ru/topic_17100_0.html)


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: dbuserQt от Март 31, 2017, 11:01
Найдено решение.
1. В исходном коде до строчки
Код:
QApplicaton a (argc, argv);

добавить путь к каталогу с библиотеками
Код:
    QStringList paths = QCoreApplication::libraryPaths();
    paths.append(".");
    paths.append("sqldrivers");
    QCoreApplication::setLibraryPaths(paths);

2. Пересобрать приложение и перенести в тестовую среду
3. Рядом с исполняемом файлом создать каталог ./sqldrivers и поместить в него библиотеку qsqlpsql4.dll
4. Проверить на зависимые библиотеки через Dependency Walker как исполняемый файл так и библиотеку sql-драйвера
5. Добавить недостающие библиотеки в каталог с приложением и каталог ./sqldrivers

Может кто подскажет как избежать дублирования файлов зависимых библиотек?


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: titan83 от Апрель 15, 2017, 18:36
может начать с windeployqt (винда же целевая ОС?)?


Название: Re: Запуск приложения, Driver not loaded.
Отправлено: Примерный ученик от Январь 19, 2018, 22:12
Добрый день!

Аналогичная ситуация, только для приложения подключающего в PostgreSQL.
Приложение написано на Qt4, работает с СУБД PostgreSQL 9.5. На компьютере Win XP с Qt Creator и собранными драйверами все работает.

Но при запуске на чистой win7 через lastError выводится Driver not loaded Driver not loaded

Через Dependency Walker проверены все зависимости, добавлены ненайденные библиотеки. Путь к приложению из латинских букв. Не помогло выделение драйвера БД в отдельный каталог ./sqldrivers.

Подскажите, пожалуйста, что нужно поставить на чистой Windows чтобы приложение работало? или как правильно собрать приложение в Qt Creator?
еще проге нужна библиотека самого PostgreSQL
libpq.dll
как минимум.