Russian Qt Forum
Сентябрь 30, 2024, 06:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Драйвер для Oracle для Qt (Linux Kubuntu 9.10)  (Прочитано 15664 раз)
crossly
Гость
« Ответ #15 : Ноябрь 26, 2009, 14:49 »

какая версия qt в системе??

эээээ
qt 4.5.2
а ты пытаешся втюхать ей драйвер от 4.5.3
Записан
swift
Гость
« Ответ #16 : Ноябрь 26, 2009, 14:52 »

а ты пытаешся втюхать ей драйвер от 4.5.3

это так критично?Непонимающий
сейчас с 4.5.2 соберу....
Записан
swift
Гость
« Ответ #17 : Ноябрь 26, 2009, 15:13 »

пересобрал
там на выходе вышел точно такой же файл
Записан
swift
Гость
« Ответ #18 : Ноябрь 26, 2009, 15:16 »

эээээ
а заработало черт побери  Смеющийся

ldconfig надо было запустить

crossly спасибо  Улыбающийся
« Последнее редактирование: Ноябрь 26, 2009, 15:28 от swift » Записан
swift
Гость
« Ответ #19 : Ноябрь 26, 2009, 18:16 »

Публикую тут решение сей проблемы

Дано:
Kubuntu 9.10 (версия kubuntu в данном случае не принципиально)
с установленным комплектом разработчика по Qt и Oracle Express Edition из репозитариев.
Задача:
установить соединение из Qt программы с базой данных.

Решение
По какой то причине в репозитарии нету скомпилированного драйвера под Oracle, но исходники самого sql драйвера
доступны в исходниках Qt.

Для начала нам необходимо скачать Instant Client Oracle
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
Обратите внимание что если у вас стоит Oracle Express Edition
то вам необходимы файлы из ветки 10.2
Скачиваете архив
разархивруете его
и идете по следующему пути(адресу)
/home/swift/Tmp/instantclient_10_2/sdk

Вас интересует содержимое директории include
с правами root создаете директорию /usr/include/oracle/10.2
и копируете в нее содержимое сей папки



Далее идем на сайт http://qt.nokia.com/downloads/linux-x11-cpp
И качаем оттуда исходники Qt.
(В репозитарии Kubuntu доступна версия Qt 4.5.2, на сайте по умолчанию предлагается скачать 4.5.3, что впринципе не принципиально,
если Вы хотите скачать исходники именно Qt 4.5.2 просто в ссылке меняете одну циферку и тем же wget спокойно ее качаете)

В моем случае я скачал ее по адресу
/home/swift/Tmp

разархивруем архив
и идем по следующему пути(адресу)
/home/swift/Tmp/qt-x11-opensource-src-4.5.2/src/plugins/sqldrivers/oci

Там должно быть три файла
README
main.cpp
oci.pro

Там выполняем следующующую команду
qmake "INCLUDEPATH+=/usr/include/oracle/10.2/" "LIBS+=-L//usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/ -Wl,-rpath,/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/ -lclntsh -lnnz10" oci.pro

Обратите внимание на пути, они должны соотвествовать пути где у вас установлен Oracle XE
Выполняем команду и получаем файл Makefile
Заходим в него и находим строчку которая начинается с INCPATH
Наша задача указать что лежат заголовочные файлы входящие в исходники.
В моем случае это вылилось в добавление туда следующей строки
-I/home/swift/Tmp/qt-x11-opensource-src-4.5.2/include

Сохраняем файл
и запускаем
сначало make
затем make install (эту команду необходимо запускать с правами root)

Затем необходимо переписать hash динамических библиотек. Это делается с помощью команды ldconfig.


Ну и теперь тестируем саму программу

#include <QtGui>
#include <QtSql>

int main(int argc, char **argv)
{
    QApplication a(argc,argv);
    QMainWindow mainwin;
....
    QSqlDatabase db;
    db.addDatabase("QOCI");
    db.setDatabaseName("XE");
    db.setUserName("system");
    db.setPassword("secret_word");
..............
    mainwin.show();
    return a.exec();
}

программа компилится стандартно
qmake -project
qmake
make
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 21.