Сборка драйвера PostgreSQL под винду, qsqlpsql4.dll и libqsqlpsql4.a в %QTDIR%\plugins\sqldrivers |
Здравствуйте, гость ( Вход | Регистрация )
Сборка драйвера 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 |
Можно уточнить... Такая же проблема. Исходные данные: 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 |
В переменные среды добавил 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" меняет компилятор сам).
|
|
|
Текстовая версия | Сейчас: 4.12.2024, 2:00 |