crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Сборка драйвера PostgreSQL под винду, qsqlpsql4.dll и libqsqlpsql4.a в %QTDIR%\plugins\sqldrivers
silver47
  опции профиля:
сообщение 23.11.2010, 10:59
Сообщение #1


Активный участник
***

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

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




Репутация:   6  


Драйвер собрался dllки на выходе получил, но в QSqlDatabase::drivers только ("QSQLITE", "QODBC3", "QODBC").
В системный Path добавил путь к директории bin PostgreSQL. В sqlbrowser QPSQL имеется, а у меня в проекте нет, в чем я ошибся?

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sadhu
  опции профиля:
сообщение 23.11.2010, 11:09
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 22.11.2010
Пользователь №: 2209

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




Репутация:   0  


была такая проблемма с бетой 4.6 попробуй кинуть дллки из bin и сам драйвер в папку к экзешнику
P.S. учитывай версию собранного драйвера : отладочная имеет имя libqsqlpsqld.dll
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 23.11.2010, 12:33
Сообщение #3


Активный участник
***

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

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




Репутация:   6  


гм.... прописал такое в PATH C:\Qt\2010.05\bin;C:\Qt\2010.05\mingw\bin;c:\windows\system32;c:\psql\bin.
Список доступных драйверов пополнился: ("QSQLITE", "QODBC3", "QODBC", "QPSQL7", "QPSQL").
Скажите пожалуйста при переносе на другую систему при условии наличия sqldrivers в пути PATH добавлять нужно будет только путь до psql\bin?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 23.11.2010, 12:39
Сообщение #4


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

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




Репутация:   3  


Лучше просто нужные либы из c:\psql\bin положить рядом с прогой. Кстати, если собрать постгрес вручную, то зависимости сократятся до 1 дллки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 31.1.2011, 14:35
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


Можно уточнить...

Такая же проблема. Исходные данные: Qt 4.5 c vs2008, драйвера для Postgre скомпилированы. Нужен только клиент доступа к базе.
Если положить скомпилированный sqlbrowser в c:\Qt\4.5.0\bin, то драйвер Postgre виден. А вот если откомпилировать проект sqlbrowser заново и положить туда же, то уже х... То же самое и с моей прогой (QSqlDatabase::drivers() видит только лайт и одбс).

К проекту добавлял:
в Linker\Additional Library Directories - "$(QTDIR)\plugins\sqldrivers"
в Linker\Input\Additional Dependencies - qsqlpsqld4.lib

Что за пути C:\Qt\2010.05\bin; C:\Qt\2010.05\mingw\bin?

Нужно ли подключать libpq?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xls
  опции профиля:
сообщение 31.1.2011, 15:26
Сообщение #6


Студент
*

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

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




Репутация:   2  


Цитата(mezmay @ 31.1.2011, 14:35) *
Можно уточнить...

Такая же проблема. Исходные данные: Qt 4.5 c vs2008, драйвера для Postgre скомпилированы. Нужен только клиент доступа к базе.
Если положить скомпилированный sqlbrowser в c:\Qt\4.5.0\bin, то драйвер Postgre виден. А вот если откомпилировать проект sqlbrowser заново и положить туда же, то уже х... То же самое и с моей прогой (QSqlDatabase::drivers() видит только лайт и одбс).

К проекту добавлял:
в Linker\Additional Library Directories - "$(QTDIR)\plugins\sqldrivers"
в Linker\Input\Additional Dependencies - qsqlpsqld4.lib

Что за пути C:\Qt\2010.05\bin; C:\Qt\2010.05\mingw\bin?

Нужно ли подключать libpq?

Во время загрузки плагинов-драйверов СУБД плагины грузят свои библиотеки. Postgre пытается загрузить libpq. Если это ему не удается, drivers() его не возвращают. Вывод: libpq должен быть доступен для загрузки, т.е. адрес содержащей его папки должен быть в PATH
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 31.1.2011, 15:41
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


В переменные среды добавил
Path - c:\psql\bin
Lib - c:\psql\lib

Эффект тот же
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xls
  опции профиля:
сообщение 31.1.2011, 15:58
Сообщение #8


Студент
*

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

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




Репутация:   2  


Цитата(mezmay @ 31.1.2011, 15:41) *
В переменные среды добавил
Path - c:\psql\bin
Lib - c:\psql\lib

Эффект тот же

1. Узнай, откуда грузяться плагины : QCoreApplication::libraryPaths()
2. Проверь наличие там плагина для Postgre
3. Проверь соответствие версии сборки плагина ( отладочный/релизный ) со сборкой Qt
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 1.2.2011, 14:58
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


Проверил. Плагины грузятся из "$(QTDIR)\plugins". (В настройках проекта пока не укажешь путь "$(QTDIR)\plugins\sqldrivers", проект не собирается, ругается на qsqlpsqld4.lib. Очевидно путь на "$(QTDIR)\plugins" меняет компилятор сам).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 4.12.2024, 1:33