crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Драйвера SQL + Qt (Win32), Проблемы при сборке и использовании
iddqd
  опции профиля:
сообщение 26.11.2009, 12:19
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 26.11.2009
Пользователь №: 1261

Спасибо сказали: 1 раз(а)




Репутация:   0  


Приветствую.

Имеется qt-sdk-win-opensource-2009.04 установленный на WinXP SP2.

1. Собрал (debug/release) драйвер для MySQL, получил qsqlmysqld4.dll/qsqlmysql4.dll, скопировал их к дефолтным плагинам в папку \Qt\2009.04\qt\plugins\sqldrivers\ вместе с .a файлами. По-идее этого достаточно. Собираю пример из \Qt\2009.04\qt\demos\sqlbrowser\, при запуске он ни в какую ни видит новый плагин, qsqlmysql4. Что я делаю не так?

2. Пытаюсь собрать драйвер для Oracle. Делаю по хелпу, поставил Oracle 9i Client c опцией "Programmer", добавил в oci.pro следующие строки
INCLUDEPATH+=c:\oracle9\oci\include
LIBS+=c:\oracle9\oci\lib\msvc

При сборке ругается непонятным образом:
Цитата
c:\Qt\2009.04\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: c:\oracle9\oci\lib\msvc: No such file: Permission denied
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\qsqloci4.dll] Error 1

Папки c:\oracle9\oci\include и c:\oracle9\oci\lib\msvc существуют, файлы в них есть.
Как решить эту проблему?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.11.2009, 14:26
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


iddqd, Давай разные типы драйверов в разных темах.

Да и тем про MySQL стало слишком много, посмотри какая тебе больше подходит и продолжи там

П.С.
Цитата(iddqd @ 26.11.2009, 15:19) *
No such file: Permission denied
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iddqd
  опции профиля:
сообщение 26.11.2009, 15:54
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 26.11.2009
Пользователь №: 1261

Спасибо сказали: 1 раз(а)




Репутация:   0  


Про MySQL вопрос снимается, по поиску нашел решение. Выполнил следующую команду в папке c:\MySQL\lib\opt\
dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a

затем собрал mysql.pro, скопировал .dll и .a в qt\plugins\sqldrivers\, а libmysql.dll в qt\bin\ (без последнего действия не заработало).

А вот с oci не получается разобраться.

Цитата
П.С.
Цитата(iddqd @ 26.11.2009, 15:19) *
No such file: Permission denied


Я тоже обратил внимание, но я уже на всю папку c:\oracle9 выставил Full control для Everyone. Ошибка осталась. Поиском пользовался, решения не нашёл.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.11.2009, 16:05
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(iddqd @ 26.11.2009, 18:54) *
Я тоже обратил внимание, но я уже на всю папку c:\oracle9 выставил Full control для Everyone. Ошибка осталась. Поиском пользовался, решения не нашёл.
по Ораклу здесь решения нет, если я не ошибаюсь.

По повуду нарушения прав доступа, я думаю речь идёт о dll'ке которая, возможно, занята другим приложением (хотя dll'а должна быть доступна всем).
Нельзя ли ради теста остановит сервер и попробовать собрать драйвер заново
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iddqd
  опции профиля:
сообщение 26.11.2009, 16:10
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 26.11.2009
Пользователь №: 1261

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 26.11.2009, 16:05) *
Нельзя ли ради теста остановит сервер и попробовать собрать драйвер заново


Дело в том, что у меня сервер и не установлен. Я ставил только клиент, как описано в хелпе: "Choosing the option "Programmer" in the Oracle Client Installer from the Oracle Client Installation CD is sufficient to build the plugin.".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iddqd
  опции профиля:
сообщение 27.11.2009, 11:20
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 26.11.2009
Пользователь №: 1261

Спасибо сказали: 1 раз(а)




Репутация:   0  


Драйвер наконец-то собрался. А дело было в том, что я не добавил префикс -L вот тут
Цитата
LIBS+=-Lc:\oracle9\oci\lib\msvc


Добавил, драйвер собрался. Для работы ещё требуется oci.dll и вот тут возникает ещё один вопрос - мне нужно запустить программу на компе, где вообще не установлен Oracle Client. Программа запускается, но к серверу не коннектится. Failed to logon. Почему такое происходит и нужно ли что-то ещё, какие-нибудь dll'ки, для работы программы без установленного Oracle Client? На Delphi это реально сделать и оно работает, но хочется переписать программу на Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 27.11.2009, 12:09
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Потому что надо эту библиотеку с собой таскать. И лежать она должна в папке sqldrivers, которую надо создать рядом с экзешником.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iddqd
  опции профиля:
сообщение 27.11.2009, 12:43
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 26.11.2009
Пользователь №: 1261

Спасибо сказали: 1 раз(а)




Репутация:   0  


Ты про сам скомпиленный драйвер или про oci.dll ? Я в курсе. И то и то перетащил на другую тачку, где нет никакого оракла, запускаю программу, драйвер грузится нормально, но вот при попытке коннекта к базе получаю "Unable to logon" без дополнительных разъяснений. Цель - чтобы работало без предустановленного Оracle Client'a, а то очень не удобно получается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.11.2009, 14:28
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Я думаю, что без клиента не получится. Либо придумывать способ как его вкомпилить в свою программу, но тут могут и правовые последствия возникнуть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iddqd
  опции профиля:
сообщение 27.11.2009, 14:36
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 26.11.2009
Пользователь №: 1261

Спасибо сказали: 1 раз(а)




Репутация:   0  


Если так, то это очень и очень плохо... А с "вкомпиливанием" вообще не вариант... Хм, на Delphi-то написали, работает без клиента. Нужели на Qt такого не получится сделать :scratch_one-s_head:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 18:11