Russian Qt Forum

Qt => Базы данных => Тема начата: sulia от Сентябрь 18, 2012, 16:55



Название: Driver not loaded QOCI (Open Suse).
Отправлено: sulia от Сентябрь 18, 2012, 16:55
Согласно документации скомпилил oci.pro, в результате получил libqsqloci.so. Потом сделал make install, дальше ldconfig.
При запуске приложения получаю Driver not loaded. Посмотрел путь к плагину, все правильно там лежит libqsqloci.so, при этом он видит другие драйвера QODBC QMYSQL и т.д. а QOCI не видет. Что я делаю не так подскажите пожалуйста???? :'(


Название: Re: Driver not loaded QOCI (Open Suse).
Отправлено: Странник от Сентябрь 19, 2012, 07:01
QSqlDatabase::drivers() что возвращает? есть ли в списке драйверов QOCI?
проверьте права доступа к файлу и папке. проверьте доступность самой библиотеки OCI.


Название: Re: Driver not loaded QOCI (Open Suse).
Отправлено: sulia от Сентябрь 19, 2012, 10:45
drivers() возвращает QSQLITE, QMYSQL, QODBC, т.е. QOCI в списке нет. Доступ к папке полный, доступ к самой библиотеке OCI есть.


Название: Re: Driver not loaded QOCI (Open Suse).
Отправлено: lesav от Сентябрь 19, 2012, 11:43
Может так ?
main.cpp
Код
C++ (Qt)
#include <QtCore/qglobal.h>
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
#include <QtWidgets/QApplication>
#else
#include <QtGui/QApplication>
#endif
 
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  ......
  a.addLibraryPath(qApp->applicationDirPath());
  a.addLibraryPath("/path/to/oracleClient/lib");
  qDebug()<< a.libraryPaths();
  ......
  return a.exec();
}
 
А рядом с бинарником расположить директорию sqldrivers  или plugins/sqldrivers


Название: Re: Driver not loaded QOCI (Open Suse).
Отправлено: lesav от Сентябрь 19, 2012, 11:46
Еще один вариант имеет право жить
Код
Bash
#!/bin/sh
 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/oraClient/lib:/path/to/myProg/plugins
# RUN My Prog
/path/to/myProg/myQtProgBin
 
                                                             
Код
Bash
$ ls /path/to/myProg/plugins/*
sqldrivers
imageformats