Russian Qt Forum

Qt => Базы данных => Тема начата: vinnipux от Декабрь 05, 2007, 13:07



Название: OCI и Qt4.2.2
Отправлено: vinnipux от Декабрь 05, 2007, 13:07
Пересмотрел весь форум так и не нашел как установить правильно OCI. Qt.Commercial.v4.2.2 + MSVS2005. Делаю все как описано в Ассистенте, создает библиотеку и dll  в папке %QTDIR%\plugins\sqldrivers\ qsqloci.dll, скопировал так же ocu.dll в system32. и все равно не видит драйвер. Подскажите что делаю не так? В чем проблема?


Название: Re: OCI и Qt4.2.2
Отправлено: Barmaglodd от Декабрь 05, 2007, 17:12
Ничего никуда не копировал, просто поставил клиента Оракла, все отлично работает. Драйвер вкомпилирован в QSql.dll, т.к. просто не осилил, что и как надо настроить, чтобы драйвера, собранные как плагины, подгружались на машинах, где раньше Qt небыло.


Название: Re: OCI и Qt4.2.2
Отправлено: vinnipux от Декабрь 05, 2007, 17:31
Ничего никуда не копировал, просто поставил клиента Оракла, все отлично работает. Драйвер вкомпилирован в QSql.dll, т.к. просто не осилил, что и как надо настроить, чтобы драйвера, собранные как плагины, подгружались на машинах, где раньше Qt небыло.

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


Название: Re: OCI и Qt4.2.2
Отправлено: Barmaglodd от Декабрь 05, 2007, 17:53
Может стоит собрать qsqloci как часть qsql.dll, а не как плагин?Хотя это, конечно, уже пляски с бубуном.


Название: Re: OCI и Qt4.2.2
Отправлено: DmP от Декабрь 05, 2007, 18:25
Если какой драйвер не загружается, то нужно убедится, что ваша программа собрана тем же компилятором, и в том же режиме - в смысле DEBUG/RELEASE.
Что бы узнать чем и как собран плагин смотрим реестр, после попытки загрузить плагин:
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.3.false
или
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false
ну в зависимости от версии Qt :)


Название: Re: OCI и Qt4.2.2
Отправлено: vinnipux от Декабрь 05, 2007, 18:27
Может стоит собрать qsqloci как часть qsql.dll, а не как плагин?Хотя это, конечно, уже пляски с бубуном.
Подскажи как это сделать! Буду очень благадарен!


Название: Re: OCI и Qt4.2.2
Отправлено: DmP от Декабрь 05, 2007, 18:30
Так же можно открыть плагин с помощью DependencyWalker, и убедится, что все связи разрешены.


Название: Re: OCI и Qt4.2.2
Отправлено: vinnipux от Декабрь 06, 2007, 05:32
Так же можно открыть плагин с помощью DependencyWalker, и убедится, что все связи разрешены.
Прошу прощения за моЁ невежество, но плагин в нашем случае это файл qsqloci.dll?

Если какой драйвер не загружается, то нужно убедится, что ваша программа собрана тем же компилятором, и в том же режиме - в смысле DEBUG/RELEASE.
Что бы узнать чем и как собран плагин смотрим реестр, после попытки загрузить плагин:
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.3.false
или
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false
ну в зависимости от версии Qt :)
посмотрел, и обноружил следующие:qsqloci.dll - release и qsqlocid.dll - release, а qsqlited.dll - debug. но как я понимаю тогда в релизе если компилировать она должна видеть oci, а не видет. Блин помогите...

просмотрел папку %QTDIR%\src\plugins\sqldrivers\oci\tmp\ там две папки moc и obj , в них есть папки debug_xxxxxx так вот они пустые а в папках release есть фалики. вроде создолося в %QTDIR%\src\plugins\sqldrivers\oci\ 3 makefile: makefile.Release, makefile.debug, makefile. блин почему не компилирует дебуг не понятно. и почему когда прогу в release компилируеш не видит OCI


Название: Re: OCI и Qt4.2.2
Отправлено: DmP от Декабрь 06, 2007, 11:37
Так же можно открыть плагин с помощью DependencyWalker, и убедится, что все связи разрешены.
Прошу прощения за моЁ невежество, но плагин в нашем случае это файл qsqloci.dll?

Да наверное это и есть плагин - драйвер оракла.
Нужнно убедится, что все ДЛЛ, которые он использует в пределах досягаемости.

Цитировать
Если какой драйвер не загружается, то нужно убедится, что ваша программа собрана тем же компилятором, и в том же режиме - в смысле DEBUG/RELEASE.
Что бы узнать чем и как собран плагин смотрим реестр, после попытки загрузить плагин:
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.3.false
или
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false
ну в зависимости от версии Qt :)
посмотрел, и обноружил следующие:qsqloci.dll - release и qsqlocid.dll - release, а qsqlited.dll - debug. но как я понимаю тогда в релизе если компилировать она должна видеть oci, а не видет. Блин помогите...

просмотрел папку %QTDIR%\src\plugins\sqldrivers\oci\tmp\ там две папки moc и obj , в них есть папки debug_xxxxxx так вот они пустые а в папках release есть фалики. вроде создолося в %QTDIR%\src\plugins\sqldrivers\oci\ 3 makefile: makefile.Release, makefile.debug, makefile. блин почему не компилирует дебуг не понятно. и почему когда прогу в release компилируеш не видит OCI

В ключе "Qt Plugin Cache 4.3.false" у меня следующие значения, скажем:
40302 0 Windows msvc release full-config
Для того что бы плагин загрузился, необходимо, что бы эти же параметры были и у программы, с помощью которой загружаете плагин.
Проверить их  для своей программы можно скажем так:
#include <QtPlugin>
#include <QDebug>

void test()
{
    Q_PLUGIN_VERIFICATION_DATA;
    qDebug() << qt_plugin_verification_data;
}


Название: Re: OCI и Qt4.2.2
Отправлено: Barmaglodd от Декабрь 06, 2007, 11:44
Подскажи как это сделать! Буду очень благадарен!
configure -qt-sql-oci  дальше нужные вам параметры, и пересобираем. Может можно как-то только QSql переконфигурировать, но я не разбирался как.


Название: Re: OCI и Qt4.2.2
Отправлено: DmP от Декабрь 06, 2007, 11:48
Также если программа собирается с помощью некого IDE, то нужно убедится, что не смешиваются сборки, скажем Debug сборка не линкуются с Release сборкой Qt, и правильно задан QT_NO_DEBUG или QT_DEBUG


Название: Re: OCI и Qt4.2.2
Отправлено: vinnipux от Декабрь 06, 2007, 12:58
спасибо разобрался.Спасибо тебе DmP . Очень блогадарен.!респек и уважуха!


Название: Re: OCI и Qt4.2.2
Отправлено: DmP от Декабрь 06, 2007, 22:19
спасибо разобрался.Спасибо тебе DmP . Очень блогадарен.!респек и уважуха!
Пожалуйста. :) Просто сам с кошмаром вспоминаю, как с бубном бегал вокруг компа, что бы заработал плагин MySQL :)
Рад, что заработало.