Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Григорий от Апрель 12, 2012, 15:48



Название: Драйвер QPSQL
Отправлено: Григорий от Апрель 12, 2012, 15:48
 Уважаемые форумчане , подскажите что надо сделать чтобы собрать драйвер QPSQL для SDK 1.2  там в комплекте идет Qt 4.8.0 , в папке plugin  драйвер только для ODBC и SQLlite, по тому что смог прочитать говорят надо собрать драйвер для постгри из какого то проекта , но его найти не могу, где мне его взять для сборки?


Название: Re: Драйвер QPSQL
Отправлено: Пантер от Апрель 12, 2012, 15:49
В поиск по форуму.


Название: Re: Драйвер QPSQL
Отправлено: Григорий от Апрель 12, 2012, 16:10
В поиск по форуму.

сухо коротко, и главное ЦЕННО...


Название: Re: Драйвер QPSQL
Отправлено: Пантер от Апрель 12, 2012, 16:12
А чего ты хотел? Вопрос неоднократно разжевывался. А если тебе лень поискать, то это уже твои проблемы.


Название: Re: Драйвер QPSQL
Отправлено: Григорий от Апрель 12, 2012, 19:03
А чего ты хотел? Вопрос неоднократно разжевывался. А если тебе лень поискать, то это уже твои проблемы.

дело не в поискать,а в непонятно , поэтому и хочется совета знающего человека , а нравоучения каждый может выдать, или сообщество нужно именно вот для таких советов? Я думал хорошим людям знаний не жалко... ан нет лучше знаю , но не скажу... а пошлю ка его поиском заниматся, только это очевидный совет (( Спасибо еще раз


Название: Re: Драйвер QPSQL
Отправлено: V1KT0P от Апрель 12, 2012, 19:07
А чего ты хотел? Вопрос неоднократно разжевывался. А если тебе лень поискать, то это уже твои проблемы.

дело не в поискать,а в непонятно , поэтому и хочется совета знающего человека , а нравоучения каждый может выдать, или сообщество нужно именно вот для таких советов? Я думал хорошим людям знаний не жалко... ан нет лучше знаю , но не скажу... а пошлю ка его поиском заниматся, только это очевидный совет (( Спасибо еще раз

Вот почитай для начала официальную документацию, и сделай как там написано:
http://qt-project.org/doc/qt-4.8/sql-driver.html#general-information-about-the-qpsql-driver (http://qt-project.org/doc/qt-4.8/sql-driver.html#general-information-about-the-qpsql-driver)


Название: Re: Драйвер QPSQL
Отправлено: Григорий от Апрель 12, 2012, 19:58
Вот почитай для начала официальную документацию, и сделай как там написано:
http://qt-project.org/doc/qt-4.8/sql-driver.html#general-information-about-the-qpsql-driver (http://qt-project.org/doc/qt-4.8/sql-driver.html#general-information-about-the-qpsql-driver)

Пробовал я этот талмуд , но к примеру у меня нет nmake , пробовал другой вариант нашел папку src Qt 4.8.0 там нашел прошный файл драйвера , пробовал компилить в qtcreator сначала вывалил добрые десятки ошибок , в файле проекта вставил явное указание на потроха постгре
Код:
INCLUDEPATH+="C:\Program Files\PostgreSQL\9.1\include\"
LIBS+="C:\Program Files\PostgreSQL\9.1\lib\"
запускаю собрать остается 2 ошибки

Код:
:-1: ошибка: C:\Program Files\PostgreSQL\9.1\lib: No such file: Permission denied
:-1: ошибка: collect2: ld returned 1 exit status

что делать дальше ума не приложу..

в линуксе так все хорошо никаких тебе шаманств с бубном, под форточкой проблемы

неужто нет готового SDK с откомпилированым драйвером?


Название: Re: Драйвер QPSQL
Отправлено: Странник от Апрель 12, 2012, 20:01
путь к библиотекам надо в QMAKE_LIBDIR прописывать, либо с префиксом -L:
Код:
LIBS+=-L"C:\Program Files\PostgreSQL\9.1\lib\"


Название: Re: Драйвер QPSQL
Отправлено: V1KT0P от Апрель 12, 2012, 20:03
Вот почитай для начала официальную документацию, и сделай как там написано:
http://qt-project.org/doc/qt-4.8/sql-driver.html#general-information-about-the-qpsql-driver (http://qt-project.org/doc/qt-4.8/sql-driver.html#general-information-about-the-qpsql-driver)

Пробовал я этот талмуд , но к примеру у меня нет nmake , пробовал другой вариант нашел папку src Qt 4.8.0 там нашел прошный файл драйвера , пробовал компилить в qtcreator сначала вывалил добрые десятки ошибок , в файле проекта вставил явное указание на потроха постгре
Код:
INCLUDEPATH+="C:\Program Files\PostgreSQL\9.1\include\"
LIBS+="C:\Program Files\PostgreSQL\9.1\lib\"
запускаю собрать остается 2 ошибки

Код:
:-1: ошибка: C:\Program Files\PostgreSQL\9.1\lib: No such file: Permission denied
:-1: ошибка: collect2: ld returned 1 exit status

что делать дальше ума не приложу..

в линуксе так все хорошо никаких тебе шаманств с бубном, под форточкой проблемы

неужто нет готового SDK с откомпилированым драйвером?
Раз у тебя MinGW, то вот инструкция: http://www.qtcentre.org/wiki/index.php?title=Building_the_QPSQL_plugin_on_Windows_using_MinGW (http://www.qtcentre.org/wiki/index.php?title=Building_the_QPSQL_plugin_on_Windows_using_MinGW)


Название: Re: Драйвер QPSQL
Отправлено: Григорий от Апрель 13, 2012, 08:06
путь к библиотекам надо в QMAKE_LIBDIR прописывать, либо с префиксом -L:
Код:
LIBS+=-L"C:\Program Files\PostgreSQL\9.1\lib\"

Большое спасибо , все собралось  ))...

Но столкнулся с другой проблемой под Windows  пытаюсь запустить свое приложение на другой машине где нет ни Постгрэ ни Qt SDK кричит что не может загрузить драйвер..

в папку с экзешником покидал Qt библиотеки , Postgres библиотеки и мною собраный драйвер Dll

Код:
iconv.dll
libeay32.dll
libgcc_s_dw2-1.dll
libiconv-2.dll
libintl-8.dll
libpq.dll
libxml2.dll
libxslt.dll
mingwm10.dll
qsqlpsql4.dll
QtCore4.dll
QtGui4.dll
QtSql4.dll
ssleay32.dll
zlib1.dll


Название: Re: Драйвер QPSQL
Отправлено: Пантер от Апрель 13, 2012, 10:34
А посмотреть зависимости не судьба? qsqlpsql4.dll зависит от дллок постгреса. Чтобы было меньше зависимостей, постгрес лучше самому собрать из исходников.


Название: Re: Драйвер QPSQL
Отправлено: Григорий от Апрель 13, 2012, 10:47
А посмотреть зависимости не судьба? qsqlpsql4.dll зависит от дллок постгреса. Чтобы было меньше зависимостей, постгрес лучше самому собрать из исходников.

извиняюсь конечно, но этот список я с потолка взял? Наверно все таки смотрел...

P/S а дело не в зависимостях, dll набросано с лихвой, (а ведь академики могли сказать ) дело было где эта dll  лежит  qsqlpsql4.dll , по умолчанию Qt ее из корня программы не берет ему нужна чтобы она лежала в папке sqldrivers , которая в свою очередь должна лежать в корне программы...


Название: Re: Драйвер QPSQL
Отправлено: Пантер от Апрель 13, 2012, 11:13
У libpq.dll посмотри зависимости. На сколько я помню, там еще дллок 10 тянется.
И посмотри в ассистенте, как нужно плугины таскать с собой.


Название: Re: Драйвер QPSQL
Отправлено: cya-st от Апрель 14, 2012, 20:59
в папке программы создай папку sqldrivers и кинь туда libpq.dll, libpq.lib, qsqlite4.dll, qsqlpsql4.dll.


Название: Re: Драйвер QPSQL
Отправлено: cya-st от Апрель 14, 2012, 21:00
qsqlite4.dll - можеш не кидать :)


Название: Re: Драйвер QPSQL
Отправлено: fedotok от Май 07, 2013, 19:39
Собрал qsqlpsqld4

Создал папку в проекте sqldrivers в проекте.

Прописал в PATH виндовс путь к папке bin postgres

все равно получаю

Код:
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC


Название: Re: Драйвер QPSQL
Отправлено: VPS от Май 07, 2013, 19:55
Попробуйте пропишите ещё пути в %PATH% к папкам PostgreSQL -> lib и include.

П.С.:
На машине с windows 7, где нет postgresql вроде прокатывает:
1. в папке sqldrivers лежит: qsqlpsql4.dll
2. в папке с exe файлом лежат dll из postrgesql\bin: libeay32.dll, libintl.dll, libpq.dll, ssleay32.dll


Название: Re: Драйвер QPSQL
Отправлено: fedotok от Май 07, 2013, 21:10
Попробуйте пропишите ещё пути в %PATH% к папкам PostgreSQL -> lib и include.

П.С.:
На машине с windows 7, где нет postgresql вроде прокатывает:
1. в папке sqldrivers лежит: qsqlpsql4.dll
2. в папке с exe файлом лежат dll из postrgesql\bin: libeay32.dll, libintl.dll, libpq.dll, ssleay32.dll

При проверке Dependency Walker файла qsqlpsql4.dll. Он ругается на:
QTCORED4.DLL
QTSQLD4.DLL
IESHIMS.DLL

Что за dll  IESHIMS.DLL?

положил QTCORED4.DLL QTSQLD4.DLL в папку с  qsqlpsql4.dll. Dependency Walker все равно говорит что их нет


Название: Re: Драйвер QPSQL
Отправлено: VPS от Май 07, 2013, 21:50
qtcored4.dll, qtsqld4.dll должны лежать в той же папке, где лежит exe файл.
qsqlpsql4.dll - в подпапке sqldrivers.

И ещё: раз ваш проект собран, как отладочный, то и в папку sqldrivers надо ложить отладочную версию - qsqlpsqld4.dll

П.С.: во вложении рабочая (у меня) структура расположения файлов на windows 7 без установленного PostgreSql (сам сервер расположен на другой машине).


Название: Re: Драйвер QPSQL (может и поможет)
Отправлено: Figaro от Май 07, 2013, 22:00
посмотрел у себя зависимости для qsqlpsqld4.dll (Qt4.8.3, MSVC 2010, собирал всю КуТю сам):

1. libpq.dll
2. qtsql4d.dll
3. qtcore4d.dll
4. msvcr100d.dll
5. kernel32.dll

qsqlpsqld4.dll как и в ассистенте прописано - sqldrivers, первая в PostgreSQL_9.2\bin (ее зависимоcти лень смотреть но в path прописан путь).