Russian Qt Forum
Ноябрь 24, 2024, 13:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не устанавливается драйвер SQL (PosgreSQL) и отсутствует доступ к базе данных  (Прочитано 7954 раз)
Pupil
Гость
« : Ноябрь 03, 2010, 16:08 »

Компоненты ПО:
   -операционная система МСВС (на основе Red Hat);
   -СУБД "Линтер";
   -библиотека Qt 4.5.3 и Qt-Creator 1.2.1


Действовал по книге Юрия Земскова "Qt 4 на примерах" (как я понимаю, она говорит примерно то же, что и "официальные" документы).

При установке динамической библиотеки вводил:
   # ./configure -prefix/usr/lib/qt-4.5.3_dynamic -plugin-sql-psql -I /usr/include/pgsql -L /usr/lib/pgsql

При установке статической библиотеки вводил:
   # ./configure -static -prefix /usr/lib/qt-4.5.3_static -release - nomake demos -nomake examples nomake tools (...) -qt-sql-psql -I -L


Установка прошла без ошибок.


После пытаюсь выполнить сборку QPSQL-плагина. Захожу в /pro/qt-all-opensource-src-4.5.3/src/plugins/sqldrivers/psql,выполняю:

qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql" "LIBS+=-L/usr/lib -lpq" psql.pro

Консоль выдаёт:

(...)/ .qmake.cache.2: Unknown replace function: quote
   (...)/ .qmake.cache.3: Unknown replace function: quote
   Failure to read QMAKESPEC conf file /mkspecss/linux-g++/qmake.conf
   Error processing project file (...)/psql.pro

Листинг:
Код:
файл .pro:
SOURCES += main.cpp
QT += sql

файл main.cpp

#include <QtSql>

int main(int argc, char** argv) {

QCoreApplication app(argc, argv);

QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setDatabaseName("...");

db.setUserName("...");
db.setHostName("localhost");
db.setPassword("...")

if (!db.open()) {
qDebug() << db.lastError();
}
else {db.close(); qDebug << "OK";}
return app.exec();
}


Результат:
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE
QSqlError(-1,"Driver not loaded","Driver not loaded"), из программы возвратились с кодом 0.




Записан
crossly
Гость
« Ответ #1 : Ноябрь 03, 2010, 16:13 »

Цитировать
При установке динамической библиотеки вводил:
   # ./configure -prefix/usr/lib/qt-4.5.3_dynamic -plugin-sql-psql -I /usr/include/pgsql -L /usr/lib/pgsql
в данном случае ( если сборка прошла без ошибок)... плагин должен быть еже собран... собирать его еще раз нет необходимости...
Цитировать
При установке статической библиотеки вводил:
   # ./configure -static -prefix /usr/lib/qt-4.5.3_static -release - nomake demos -nomake examples nomake tools (...) -qt-sql-psql -I -L
опять же если сборка прошла без ошибок то поддержка psql должна быть вкомпилирована в qtsql ... к тому же статическая сборка не поддерживает плагинов...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #2 : Ноябрь 03, 2010, 16:28 »

./configure -prefix/usr/lib/qt-4.5.3_dynamic -qt-sql-psql -I /usr/include/pgsql -L /usr/lib/pgsql
Так лучше.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Pupil
Гость
« Ответ #3 : Ноябрь 03, 2010, 19:33 »

Спасибо! После опробования обязательно сообщу результат.
Записан
crossly
Гость
« Ответ #4 : Ноябрь 03, 2010, 21:41 »

./configure -prefix/usr/lib/qt-4.5.3_dynamic -qt-sql-psql -I /usr/include/pgsql -L /usr/lib/pgsql
Так лучше.
не думаю что так будет лучше.... QtSql в данном случае будет тянуть за собой dll psql .... я бы в данном случае наверное сделал бы выбор в сторону -plugin-sql-psql
Записан
andrew.k
Гость
« Ответ #5 : Ноябрь 08, 2010, 18:30 »

Цитировать
qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql" "LIBS+=-L/usr/lib -lpq" psql.pro

Консоль выдаёт:

(...)/ .qmake.cache.2: Unknown replace function: quote
   (...)/ .qmake.cache.3: Unknown replace function: quote
   Failure to read QMAKESPEC conf file /mkspecss/linux-g++/qmake.conf
   Error processing project file (...)/psql.pro
qmake4 вместо qmake

Как удалось установить creator не подскажешь?
Записан
crossly
Гость
« Ответ #6 : Ноябрь 08, 2010, 18:38 »

учитывая то что человек собирал Qt из исходников... то все же именно qmake.... вопрос в том прописан ли к нему путь в PATH...
Записан
andrew.k
Гость
« Ответ #7 : Ноябрь 08, 2010, 18:50 »

учитывая то что человек собирал Qt из исходников... то все же именно qmake.... вопрос в том прописан ли к нему путь в PATH...

ну да по сути. в МСВС qmake4 это симлинк на 4 кумэйк.
а QTDIR=/usr/lib/qt-3.3.3 по умолчанию
Записан
Pupil
Гость
« Ответ #8 : Ноябрь 09, 2010, 17:09 »

Всем искреннее спасибо! Вопрос решён. Пантер -респект! Qt устанавливался по одной из тем данного портала - порядок действий на одну страничку.
Записан
Pupil
Гость
« Ответ #9 : Ноябрь 09, 2010, 17:20 »

andrew.k, http://www.prog.org.ru/topic_12303_0.html
Записан
andrew.k
Гость
« Ответ #10 : Ноябрь 09, 2010, 18:58 »

да уже ознакамливаюсь. Просто я думал, что можно установить без установки кути 4.5.
Записан
andrew.k
Гость
« Ответ #11 : Ноябрь 11, 2010, 17:37 »

./configure -prefix/usr/lib/qt-4.5.3_dynamic -qt-sql-psql -I /usr/include/pgsql -L /usr/lib/pgsql
Так лучше.
не думаю что так будет лучше.... QtSql в данном случае будет тянуть за собой dll psql .... я бы в данном случае наверное сделал бы выбор в сторону -plugin-sql-psql
Расскажи подробнее. чем плохо? чем хорошо? что значит будет тянуть dll psql.
Значит ли это, что даже если я не буду испльзовать в программе psql (а например другой движок) dll все равно прилинкуется?
Записан
crossly
Гость
« Ответ #12 : Ноябрь 11, 2010, 17:57 »

Цитировать
Значит ли это, что даже если я не буду испльзовать в программе psql (а например другой движок) dll все равно прилинкуется?
именно это и значит... QtSql всегда будет тянуть за собой клиентскую библиотеку postgres.... т.е. если вам нужен к примеру только sqlite вам все равно придется таскать и постгрес...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 23.