Драйвера SQL + Qt (Win32), Проблемы при сборке и использовании |
Здравствуйте, гость ( Вход | Регистрация )
Драйвера 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 следующие строки
При сборке ругается непонятным образом: Цитата 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 стало слишком много, посмотри какая тебе больше подходит и продолжи там П.С. No such file: Permission denied
|
|
|
iddqd |
26.11.2009, 15:54
Сообщение
#3
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Про MySQL вопрос снимается, по поиску нашел решение. Выполнил следующую команду в папке c:\MySQL\lib\opt\
затем собрал mysql.pro, скопировал .dll и .a в qt\plugins\sqldrivers\, а libmysql.dll в qt\bin\ (без последнего действия не заработало). А вот с oci не получается разобраться. Цитата Я тоже обратил внимание, но я уже на всю папку c:\oracle9 выставил Full control для Everyone. Ошибка осталась. Поиском пользовался, решения не нашёл. |
|
|
Litkevich Yuriy |
26.11.2009, 16:05
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Я тоже обратил внимание, но я уже на всю папку c:\oracle9 выставил Full control для Everyone. Ошибка осталась. Поиском пользовался, решения не нашёл. по Ораклу здесь решения нет, если я не ошибаюсь.По повуду нарушения прав доступа, я думаю речь идёт о dll'ке которая, возможно, занята другим приложением (хотя dll'а должна быть доступна всем). Нельзя ли ради теста остановит сервер и попробовать собрать драйвер заново |
|
|
iddqd |
26.11.2009, 16:10
Сообщение
#5
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Нельзя ли ради теста остановит сервер и попробовать собрать драйвер заново Дело в том, что у меня сервер и не установлен. Я ставил только клиент, как описано в хелпе: "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 такого не получится сделать
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 18:42 |