Russian Qt Forum

Qt => Базы данных => Тема начата: Martiro от Февраль 20, 2007, 09:12



Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Февраль 20, 2007, 09:12
Подскажите, где можно скачать исходники, чтобы его установить и как это делается?...


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: zabivator от Февраль 20, 2007, 17:26
Хм. Скачиваются вместе с qt'ом, собираются отдельно (смотри папку plugins там идем в нужный нам драйвер, qmake; make; ).


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Февраль 21, 2007, 09:36
В том то и дело, что появляется ошибка:
Код:
Some of the required modules (sql) are not available.
Skipped.


добавлено спустя 35 минут:

 ...Как-то странно... Видимо, у меня обрезаная версия qt`шки. В плугинах в папке sqldrivers psql не было. Но я добавил из архивчика, но там только make и файл проекта. Этого, видимо для компиляции не достаточно... Ругалась она по-разному. Добавил туда же несколько h-ников. теперь в папке лежит
Код:
libpq-fe.h
main.cpp
postgres.h
postgres_ext.h
qsql_psql.h
qsqldriver.h
qsqldriverinterface_p.h
qsqldriverplugin.h

Теперь хоть как-то начинает компилить, но всё равно выдаёт ошибку:
Код:
... In function `_start':
: undefined reference to `main'
... in function `QPSQLDriverPlugin::create(QString const &)':
: undefined reference to `QPSQLDriverPlugin::QPSQLDriverPlugin(QObject *, char const &)'


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Steven_Orko от Февраль 21, 2007, 21:17
Не надо ничего никуда копировать!!!! Надо прежде почитать асистент!!!
http://doc.trolltech.com/3.3/sql-driver.html#QPSQL7

Там ясно написано:
Код:

cd $QTDIR/plugins/src/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=/usr/src/psql/src/include /usr/src/psql/src/interfaces/libpq" "LIBS+=-L/usr/lib -lpq" psql.pro
make

 Лично у меня все собралось таким образом. Только я поправил пути соответственно тем, которые у меня на машине имеются.


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Sergey B. от Февраль 22, 2007, 06:55
Цитата: "Steven_Orko"
Не надо ничего никуда копировать!!!! Надо прежде почитать асистент!!!
http://doc.trolltech.com/3.3/sql-driver.html#QPSQL7

Там ясно написано:
Код:

cd $QTDIR/plugins/src/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=/usr/src/psql/src/include /usr/src/psql/src/interfaces/libpq" "LIBS+=-L/usr/lib -lpq" psql.pro
make

 Лично у меня все собралось таким образом. Только я поправил пути соответственно тем, которые у меня на машине имеются.


Кстати, а возможно ли в Qt 3.x.x собрать драйвер для
PostgreSQL 8.x.x?


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Steven_Orko от Февраль 22, 2007, 17:40
Да, возможно... Я именно его и собирал )))))))))


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Февраль 26, 2007, 09:17
Цитата: "Steven_Orko"
Не надо ничего никуда копировать!!!! Надо прежде почитать асистент!!!
http://doc.trolltech.com/3.3/sql-driver.html#QPSQL7

Там ясно написано:
Код:

cd $QTDIR/plugins/src/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=/usr/src/psql/src/include /usr/src/psql/src/interfaces/libpq" "LIBS+=-L/usr/lib -lpq" psql.pro
make

 Лично у меня все собралось таким образом. Только я поправил пути соответственно тем, которые у меня на машине имеются.

А какие именно надо пути указывать? К чему? Просто дело в том, что у меня не чистый Линукс, а MCBC 3.0 и не PosgreSQL, а ЛинтерВС. Поскольку ОС перелопачена до неузнаваемости, приходится всё, чего недостаёт искать где-то в другом месте.


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Steven_Orko от Февраль 26, 2007, 21:49
Ну в таком случае, если у тебя мсвс, то у тебя должна быть такая штука, как "библиотеки разработки приложений". Как раз на диске с таким названием и содержатся уже собранные плагины для доступа к PostgreSQL. Ну, а так... тебе надо установить все либы devel, которые у тебя идут с PostgreSQL, т.е. и серверные тоже. В дире /usr/include есть директория с заголовочными файлами. Вот к ним и надо прописать пути в INCLUDEPATH, точнее там два все пути надо, один точно к корневой папке заголовных файлов СУБД, a другой не помню, надо на работе посмотреть. Поэкспериментируй, изменяя второй путь. Т.е. у тебя будет:

Код:
cd $QTDIR/plugins/src/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+="Путь_к_корневой папке_заголовочных_файлов_СУБД Второй_путь_с_которым_надо_поэкспериментировать" "LIBS+=-L/usr/lib -lpq" psql.pro
make


Название: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Февраль 27, 2007, 16:32
Steven_Orko, всё бы здорово, но этот МСВС попал ко мне через третьи_кривые_руки и другого нет. Так что этой самой "библиотеки разработки приложений" нет.
Я скопировал из
Код:
qt-embedded-free-3.3.3.tar\qt-embedded-free-3.3.3\plugins\src\sqldrivers\psql\
мэйн и файл проекта, изменил путь в инклюде в мэйне, нашёл qsql_psql.cpp и .h, пытаюсь собрать, но всё равно не выходит...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Октябрь 12, 2008, 11:50
Я, конечно понимаю, что прошло много времени, но, поскольку решения не видно, предлагаю
100% вариант для МСВС
Подправленный под МСВС проект
http://letitbit.net/download/e27c2c569245/psql.rar.html (http://letitbit.net/download/e27c2c569245/psql.rar.html)
Заходим в паку проекта выполняем приведенную ниже команду. Здесь указаны реальные пути к библиотекам QT и Линтера,
который PostgreSQL 7.4.1
Код:
qmake –o Makefile  “INCLUDEPATH+=/usr/include/pgsql   /usr/include/pgsql/libpq   /usr/include/pgsql/server” “LIBS+=-L/usr/lib  -lpq” psql.pro
make

Готовый драйвер окажется в папке /usr/sqldrivers
Нужно его скопировать в /usr/lib/qt-3.3.3/plugins/sqldrivers
После этого все прекрасно работает


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: eg015t от Март 16, 2009, 12:02
Примерный ученик, столкнулся с этой же проблемой. Скопмилировал библиотеку, поместил в sqldrivers. Но приложения все равно не запускается (driver qpsql7 no loaded).


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 16, 2009, 12:11
Ребята, ну сколько раз можно писать? libpq.so (клиентская библиотека Postgres) имеется на машине или нет? Уже пять лет юзаю постгрес, с ним никогда проблем не было!!!


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 16, 2009, 12:13
Кстати, если используете МСВС, то под него есть драйвер уже скомпилированный в отдельной RPM для так называемого Линтера... Называется QLSQL60


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: eg015t от Март 16, 2009, 13:45
BaltikS, все верно, МСВС+Линтер 7.4.1. RPM стоят полностью от него. Но QLSQL60 не подгружается.


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 16, 2009, 14:03
1) Убедится в наличии клиентской библиотеки Линтера по пути /usr/lib; Или установить клиентскую библиотеку из RPM.
2) Убедится наличие в папке с программой каталога /sqldrivers/qlsql.so (не помню точно как называется)... Или установить RPM

Это необходимое и достаточное условие....


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: eg015t от Март 16, 2009, 14:31
/usr/lib/libpq.so присутсвует.. в /usr/lib/.../sqldrivers записал, как наиболее похожее, plpgsql.so из комплекта Линтера. Не помогло: доступен только QSQLITE...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 16, 2009, 14:55
Нууу, даже не знаю.....остаётся поробовать только ldconfig в командной строке...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: eg015t от Март 16, 2009, 15:36
с него и начинал (лдконфига) :)


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Март 30, 2009, 08:43
Сюда положил скомпилированный драйвер и небольшую инструкцию.
У меня МСВС 3.0.12
Код:
http://letitbit.net/download/653a3d543528/sqldrivers.rar.html


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 30, 2009, 10:03
не поленился почитал инструкцию...
Честно говоря не понял для чего это? Есть 2 официальных rpm. 1) Драйвер Qt (qlinter-1.2.1-cbit11.i486.rpm); 2) Клиент Линтера (postgresql-libs-7.4.1-cbit09.6cert.i486.rpm).... Всё распаковавывается в один миг....

З.Ы. В инструкции зачем-то указано наличие установленного Линтера... Зачем? Можно обойтись лишь его клиентской частью...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Март 30, 2009, 12:46
не поленился почитал инструкцию...
Честно говоря не понял для чего это? Есть 2 официальных rpm. 1) Драйвер Qt (qlinter-1.2.1-cbit11.i486.rpm); 2) Клиент Линтера (postgresql-libs-7.4.1-cbit09.6cert.i486.rpm).... Всё распаковавывается в один миг....

З.Ы. В инструкции зачем-то указано наличие установленного Линтера... Зачем? Можно обойтись лишь его клиентской частью...

Насколько я понял, у Вас проблем нет.
А кому то драйвер может и подойти...
А наличие Линтера на машине, где идет отладка лишним не будет... ;D


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Март 30, 2009, 13:00
Согласен, для работы действительно достаточно клиента Линтер.
Но вот qlinter-1.2.1-cbit11.i486.rpm в моей инсталяшке Линтера нет.
Сам компилировал драйвер используя исходники QT3.3.8


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 30, 2009, 13:37
Правильно их там и нет, они идут отдельно, вместе с чудо ПС Конструктором... А вот тот драйвер, который ты собрал не будет работать с MAC - метками Линтера...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Март 30, 2009, 14:00
Если не трудно, что такое МАC и с чем их едят?


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Март 30, 2009, 15:09
Сам этим не пользовался, но насколько я понимаю, это разграничение прав доступа на конкретную запись в таблице...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Март 30, 2009, 15:58
Если так, то для моей задачи такие возможности совершенно никчему.
Спасибо за информацию


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Май 13, 2009, 09:50
Добрый день.
У меня такая же проблема с МСВС, qt и постгрес. вы разобрались как собрать этот драйвер и установить постгрес в МСВС?
Да. Разобрались.
Сейчас расскажу как.

На данный момент работаем с версией 7.3.3. Но ставили из ВНИИС`овского пакета программ (пакет "linter"). Но, я думаю, если скачать на сайте postres эту версию, то она должна заработать.
Далее. (под root`ом)

1. Создали папку
/usr/lib/qt-3.3.3/plugins/sqldrivers/psql
2. Поместили туда файлы create_driver.bat
                                        main.cpp
                                        psql.pro
  В файле create_driver.bat прописаны пути и команды
 
Код:
              cd   /usr/lib/qt-3.3.3/plugins/sqldrivers/psql
               qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql /usr/lib/libpq"
проверьте есть ли эти папки и библиотека libpq.

3. В папку /usr/lib/qt-3.3.3/include поместили файлы qsql_psql.h
                                   qsql_psql.cpp
4. В файле main.cpp прописали путь #include "/usr/lib/qt-3.3.3/include/qsql_psql.h"       
5. В файле psql.pro прописали
<<
Код
C++ (Qt)
HEADERS = /usr/lib/qt-3.3.3/include/qsql_psql.h
SOURCES = main.cpp \
/usr/lib/qt-3.3.3/include/qsql_psql.cpp
UNIX {
OBJECTS_DIR = .obj
!contains( LIBS, .*pq.* ) {
   LIBS *= -lpq
}
}
 
#REQUIRES = sql
INCLUDEPATH += /usr/include/pgsql
>>
проверьте пути.

6. В файле /usr/lib/qt-3.3.3/include/qsql_psql.h
    прописали
Код
C++ (Qt)
#include "/usr/include/pgsql/libpq-fe.h"
7.В файле /usr/lib/qt-3.3.3/include/qsql_psql.cpp
    прописали

<<
Код
C++ (Qt)
#include "qsql_psql.h"
#include <private/qsqlextension_p.h>
 
#include <math.h>
 
#include <qpointarray.h>
#include <qsqlrecord.h>
#include <qregexp.h>
#include <qdatetime.h>
// PostgreSQL header <utils/elog.h> included by <postgres.h> redefines DEBUG.
#if defined(DEBUG)
# undef DEBUG
#endif
#include "/usr/include/pgsql/postgres.h"
#include "/usr/include/pgsql/libpq/libpq-fs.h"
// PostgreSQL header <catalog/pg_type.h> redefines errno erroneously.
#if defined(errno)
# undef errno
#endif
#define errno qt_psql_errno
#include "/usr/include/pgsql/catalog/pg_type.h"
#undef errno
 
QPtrDict<QSqlDriverExtension> *qSqlDriverExtDict();
QPtrDict<QSqlOpenExtension> *qSqlOpenExtDict();
>>

8. запустили create_driver.bat
9. В результате в папке /usr/lib/qt-3.3.3/plugins/sqldrivers/psql/sqldrivers
   собралась библиотека libqsqlpsql.so перенесли ее в /usr/lib/qt-3.3.3/plugins/sqldrivers/
   и вроде бы все у нас заработало.

В ходе сборки могут возникать некоторые ошибки, связанные с тем, что некоторые пути в h`никах лежат по другим адресам. Я собирал этот драйвер на многих машинах и везде все происходит по разному. Могу посоветовать только одно: Правьте.  ;D



Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: sibmail от Май 13, 2009, 14:18
Да. Разобрались.
Сейчас расскажу как.

На данный момент работаем с версией 7.3.3. Но ставили из ВНИИС`овского пакета программ (пакет "linter"). Но, я думаю, если скачать на сайте postres эту версию, то она должна заработать.
Далее. (под root`ом)

1. Создали папку
/usr/lib/qt-3.3.3/plugins/sqldrivers/psql
2. Поместили туда файлы create_driver.bat
..............
В ходе сборки могут возникать некоторые ошибки, связанные с тем, что некоторые пути в h`никах лежат по другим адресам. Я собирал этот драйвер на многих машинах и везде все происходит по разному. Могу посоветовать только одно: Правьте.  ;D


Собралась библиотека libqsqlpsql.so 158904б.
при запуске приложения пишет:
Conflict in /usr/lib/qt-3.3.3/plugins/sqldrivers/libqsqlpsql.so:
Plugin uses single threaded Qt library!
QSqlDatabase: QPSQL7 driver not loaded
QSqlDatabase: available drivers: QSQLITE
Driver not loaded      



Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: sibmail от Май 14, 2009, 04:48
Собралась библиотека libqsqlpsql.so 158904б.
при запуске приложения пишет:
Conflict in /usr/lib/qt-3.3.3/plugins/sqldrivers/libqsqlpsql.so:
Plugin uses single threaded Qt library!
QSqlDatabase: QPSQL7 driver not loaded
QSqlDatabase: available drivers: QSQLITE
Driver not loaded      

Your .pro file for your plugin must include the line:
    CONFIG += thread


сейчас номально. еще бы постгрес запустить в МСВС....


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Примерный ученик от Май 14, 2009, 21:14
Собралась библиотека libqsqlpsql.so 158904б.
при запуске приложения пишет:
Conflict in /usr/lib/qt-3.3.3/plugins/sqldrivers/libqsqlpsql.so:
Plugin uses single threaded Qt library!
QSqlDatabase: QPSQL7 driver not loaded
QSqlDatabase: available drivers: QSQLITE
Driver not loaded      

Your .pro file for your plugin must include the line:
    CONFIG += thread


сейчас номально. еще бы постгрес запустить в МСВС....

После установки RPM Линтер (PostgreSQL) грузится автоматически, уже существует суперпользователь СУБД
с именем postgres
Каков у него пароль, выяснить не удалось. Тогда я от имени root его просто поменял. После этого доступ к кластеру
был получен через штатный администратор ЛИНТЕР. Он довольно убогий, похоже его делали ВНИИНС


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Май 15, 2009, 06:33
Он довольно убогий, похоже его делали ВНИИНС
Нет, он его не делал, а правил исходники... Похоже это PGадмин ранней версии...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Май 15, 2009, 07:58
Я с базой работаю через pgMyAdmin.
Правда, это реально только если есть http-сервер где-нибудь в той же сети, что и МСВС. А настроить http-сервер в МСВС я даже и не пробовал.  ;D


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Май 15, 2009, 08:18
сейчас номально. еще бы постгрес запустить в МСВС....
А чего там там сложного?...
# setup
Настройка системных служб -> Ставим звездочку напротив postgresql
И при следующем старте все запустится...
Либо
# /etc/rc.d/init.d/postgresql start
Вообще для пользователя postgres (либо того, кто будет работать с базой) должны быть доступны директории на чтение/запись/запуск:
/etc/rc.d/init.d/*.*
/user/lib/pgsql/*.*
/var/lib/pgsql/*.*

Плюс, надо создать пользователей в postgres, которые будут к нему обращаться из приложения:
В консоле из-под пользователя postgres:
# createuser
...

# pg_passwd pass
...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Май 15, 2009, 08:43
Я с базой работаю через pgMyAdmin.
Правда, это реально только если есть http-сервер где-нибудь в той же сети, что и МСВС. А настроить http-сервер в МСВС я даже и не пробовал.  ;D
что то изврат какой то..... EMS Manager for Postgres под винды + сеть....


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Rcus от Май 15, 2009, 08:55
тру это ssh+psql (нужно только манов почитать чтобы знать откуда метаинформацию брать :)


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Май 15, 2009, 09:05
SSH то зачем? Можно и без него одним psql обойтись :)


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Rcus от Май 15, 2009, 09:10
ssh чтобы править конфиги :D


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Май 15, 2009, 09:27
Я с базой работаю через pgMyAdmin.
Правда, это реально только если есть http-сервер где-нибудь в той же сети, что и МСВС. А настроить http-сервер в МСВС я даже и не пробовал.  ;D
что то изврат какой то..... EMS Manager for Postgres под винды + сеть....
Русский интерфейс + простота в освоении...


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: BaltikS от Май 15, 2009, 09:47
Русский интерфейс + простота в освоении...
Может оно и так, но HTTP-сервер в сети это конечно круто! :)


Название: Re: QT 3.3.3 + PostgreSQL7 под *nix ----driver not loaded
Отправлено: Martiro от Май 15, 2009, 09:58
Ничего сложного. Один раз настроил, а потом подключай нужные сервисы. Просто у нас сеть большая и задач много. ;)
Но, это дело каждого... Кому что нужно...