powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt + Postgresql
25 сообщений из 62, страница 2 из 3
Qt + Postgresql
    #38734246
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собираю в QtCreator debug and Release version Qt 4.8.1
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734260
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибку выдает в строке 68

Код: plaintext
1.
2.
3.
const QMetaObjectExtraData QPSQLDriver::staticMetaObjectExtraData = {
    0,  qt_static_metacall 
};





Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
/****************************************************************************
** Meta object code from reading C++ file 'qsql_psql.h'
**
** Created: Mon 1. Sep 17:03:10 2014
**      by: The Qt Meta Object Compiler version 63 (Qt 4.8.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

#include "../qsql_psql.h"
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'qsql_psql.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 63
#error "This file was generated using the moc from 4.8.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif

QT_BEGIN_MOC_NAMESPACE
static const uint qt_meta_data_QPSQLDriver[] = {

 // content:
       6,       // revision
       0,       // classname
       0,    0, // classinfo
       4,   14, // methods
       0,    0, // properties
       0,    0, // enums/sets
       0,    0, // constructors
       0,       // flags
       0,       // signalCount

 // slots: signature, parameters, type, tag, flags
      23,   18,   13,   12, 0x09,
      70,   18,   13,   12, 0x09,
     133,   12,  121,   12, 0x09,
     175,   12,   12,   12, 0x08,

       0        // eod
};

static const char qt_meta_stringdata_QPSQLDriver[] = {
    "QPSQLDriver\0\0bool\0name\0"
    "subscribeToNotificationImplementation(QString)\0"
    "unsubscribeFromNotificationImplementation(QString)\0"
    "QStringList\0subscribedToNotificationsImplementation()\0"
    "_q_handleNotification(int)\0"
};

void QPSQLDriver::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    if (_c == QMetaObject::InvokeMetaMethod) {
        Q_ASSERT(staticMetaObject.cast(_o));
        QPSQLDriver *_t = static_cast<QPSQLDriver *>(_o);
        switch (_id) {
        case 0: { bool _r = _t->subscribeToNotificationImplementation((*reinterpret_cast< const QString(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
        case 1: { bool _r = _t->unsubscribeFromNotificationImplementation((*reinterpret_cast< const QString(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
        case 2: { QStringList _r = _t->subscribedToNotificationsImplementation();
            if (_a[0]) *reinterpret_cast< QStringList*>(_a[0]) = _r; }  break;
        case 3: _t->_q_handleNotification((*reinterpret_cast< int(*)>(_a[1]))); break;
        default: ;
        }
    }
}

const QMetaObjectExtraData QPSQLDriver::staticMetaObjectExtraData = {
    0,  qt_static_metacall 
};

const QMetaObject QPSQLDriver::staticMetaObject = {
    { &QSqlDriver::staticMetaObject, qt_meta_stringdata_QPSQLDriver,
      qt_meta_data_QPSQLDriver, &staticMetaObjectExtraData }
};

#ifdef Q_NO_DATA_RELOCATION
const QMetaObject &QPSQLDriver::getStaticMetaObject() { return staticMetaObject; }
#endif //Q_NO_DATA_RELOCATION

const QMetaObject *QPSQLDriver::metaObject() const
{
    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
}

void *QPSQLDriver::qt_metacast(const char *_clname)
{
    if (!_clname) return 0;
    if (!strcmp(_clname, qt_meta_stringdata_QPSQLDriver))
        return static_cast<void*>(const_cast< QPSQLDriver*>(this));
    return QSqlDriver::qt_metacast(_clname);
}

int QPSQLDriver::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QSqlDriver::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        if (_id < 4)
            qt_static_metacall(this, _c, _id, _a);
        _id -= 4;
    }
    return _id;
}
QT_END_MOC_NAMESPACE
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734286
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попытка сборки в консоли:

}{абр

Конфигурируем исходники и включаем нужный драйвер как plugin
configure -I "c:\psql\include" -L "c:\psql\lib" -plugin-sql-psql

Результат:

авторSetting up environment for Qt usage...

C:\Windows\system32>configure -I "c:\psql\include" -L "c:\psql\lib" -plugin-sql-
psql
Qt: Untested Windows version 6.2 detected!
Error: Creating a shadow build of Qt requires
perl to be in the PATH environment
C:\Windows\system32>

В "c:\psql - PostgreSQL 9.3 (не драйвер)
Причем здесь Перл? Какую версию (если она нужна) надо использовать и как подключать в Qt?

Команды
cd src\plugins\sqldrivers\psql
qmake psql.pro выполняются, а make выдает ошибку, аналогично сборке в Креаторе:

Setting up environment for Qt usage...

C:\Windows\system32>configure -I "c:\psql\include" -L "c:\psql\lib" -plugin-sql-
psql
Qt: Untested Windows version 6.2 detected!
Error: Creating a shadow build of Qt requires
perl to be in the PATH environment
C:\Windows\system32>cd C:\QtSDK\src\psql

C:\QtSDK\src\psql>qmake psql.pro
Qt: Untested Windows version 6.2 detected!
WARNING: c:\QtSDK\src\psql\psql.pro:7: Unable to find file for inclusion qsqldri
verbase.pri
WARNING: c:\QtSDK\src\psql\psql.pro:7: Unable to find file for inclusion qsqldri
verbase.pri
WARNING: c:\QtSDK\src\psql\psql.pro:7: Unable to find file for inclusion qsqldri
verbase.pri

C:\QtSDK\src\psql>mingw32-make debug
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/QtSDK/src/psql'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_DLL -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -D
QT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
-I"..\..\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"..\..\Desktop\Qt\4.8.1\mingw
\include\QtGui" -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtSql" -I"..\..\Desktop\
Qt\4.8.1\mingw\include" -I"..\..\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"deb
ug" -I"..\..\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o debug\main.o main.cpp
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_DLL -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -D
QT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
-I"..\..\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"..\..\Desktop\Qt\4.8.1\mingw
\include\QtGui" -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtSql" -I"..\..\Desktop\
Qt\4.8.1\mingw\include" -I"..\..\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"deb
ug" -I"..\..\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o debug\qsql_psql.o qsql
_psql.cpp
qsql_psql.cpp:715: warning: 'QPSQLDriver::QPSQLDriver(QObject*)' redeclared with
out dllimport attribute: previous dllimport ignored
qsql_psql.cpp:721: warning: 'QPSQLDriver::QPSQLDriver(PGconn*, QObject*)' redecl
ared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:733: warning: 'void QPSQLDriver::init()' redeclared without dllimp
ort attribute after being referenced with dll linkage
qsql_psql.cpp:738: warning: 'virtual QPSQLDriver::~QPSQLDriver()' redeclared wit
hout dllimport attribute: previous dllimport ignored
qsql_psql.cpp:745: warning: 'virtual QVariant QPSQLDriver::handle() const' redec
lared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:750: warning: 'virtual bool QPSQLDriver::hasFeature(QSqlDriver::Dr
iverFeature) const' redeclared without dllimport attribute after being reference
d with dll linkage
qsql_psql.cpp:790: warning: 'virtual bool QPSQLDriver::open(const QString&, cons
t QString&, const QString&, const QString&, int, const QString&)' redeclared wit
hout dllimport attribute: previous dllimport ignored
qsql_psql.cpp:836: warning: 'virtual void QPSQLDriver::close()' redeclared witho
ut dllimport attribute after being referenced with dll linkage
qsql_psql.cpp:855: warning: 'virtual QSqlResult* QPSQLDriver::createResult() con
st' redeclared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:860: warning: 'virtual bool QPSQLDriver::beginTransaction()' redec
lared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:877: warning: 'virtual bool QPSQLDriver::commitTransaction()' rede
clared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:910: warning: 'virtual bool QPSQLDriver::rollbackTransaction()' re
declared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:927: warning: 'virtual QStringList QPSQLDriver::tables(QSql::Table
Type) const' redeclared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:958: warning: 'virtual QSqlIndex QPSQLDriver::primaryIndex(const Q
String&) const' redeclared without dllimport attribute: previous dllimport ignor
ed
qsql_psql.cpp:1039: warning: 'virtual QSqlRecord QPSQLDriver::record(const QStri
ng&) const' redeclared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:1176: warning: 'virtual QString QPSQLDriver::formatValue(const QSq
lField&, bool) const' redeclared without dllimport attribute: previous dllimport
ignored
qsql_psql.cpp:1263: warning: 'virtual QString QPSQLDriver::escapeIdentifier(cons
t QString&, QSqlDriver::IdentifierType) const' redeclared without dllimport attr
ibute: previous dllimport ignored
qsql_psql.cpp:1274: warning: 'virtual bool QPSQLDriver::isOpen() const' redeclar
ed without dllimport attribute after being referenced with dll linkage
qsql_psql.cpp:1279: warning: 'QPSQLDriver::Protocol QPSQLDriver::protocol() cons
t' redeclared without dllimport attribute: previous dllimport ignored
qsql_psql.cpp:1284: warning: 'bool QPSQLDriver::subscribeToNotificationImplement
ation(const QString&)' redeclared without dllimport attribute: previous dllimpor
t ignored
qsql_psql.cpp:1318: warning: 'bool QPSQLDriver::unsubscribeFromNotificationImple
mentation(const QString&)' redeclared without dllimport attribute: previous dlli
mport ignored
qsql_psql.cpp:1351: warning: 'QStringList QPSQLDriver::subscribedToNotifications
Implementation() const' redeclared without dllimport attribute: previous dllimpo
rt ignored
qsql_psql.cpp:1356: warning: 'void QPSQLDriver::_q_handleNotification(int)' rede
clared without dllimport attribute: previous dllimport ignored
C:\QtSDK\Desktop\Qt\4.8.1\mingw\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQ
T_DLL -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT
_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -
I"..\..\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"..\..\Desktop\Qt\4.8.1\mingw\i
nclude\QtGui" -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtSql" -I"..\..\Desktop\Qt
\4.8.1\mingw\include" -I"..\..\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"debug
" -I"..\..\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -D__GNUC__ -DWIN32 qsql_psq
l.h -o debug\moc_qsql_psql.cpp
Qt: Untested Windows version 6.2 detected!
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_DLL -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -D
QT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
-I"..\..\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"..\..\Desktop\Qt\4.8.1\mingw
\include\QtGui" -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtSql" -I"..\..\Desktop\
Qt\4.8.1\mingw\include" -I"..\..\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"deb
ug" -I"..\..\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o debug\moc_qsql_psql.o
debug\moc_qsql_psql.cpp
debug\moc_qsql_psql.cpp:50: warning: 'static void QPSQLDriver::qt_static_metacal
l(QObject*, QMetaObject::Call, int, void**)' redeclared without dllimport attrib
ute: previous dllimport ignored
debug\moc_qsql_psql.cpp:68: warning: 'QPSQLDriver::staticMetaObjectExtraData' re
declared without dllimport attribute after being referenced with dll linkage
debug\moc_qsql_psql.cpp:72: warning: 'QPSQLDriver::staticMetaObject' redeclared
without dllimport attribute after being referenced with dll linkage
debug\moc_qsql_psql.cpp:81: warning: 'virtual const QMetaObject* QPSQLDriver::me
taObject() const' redeclared without dllimport attribute: previous dllimport ign
ored
debug\moc_qsql_psql.cpp:86: warning: 'virtual void* QPSQLDriver::qt_metacast(con
st char*)' redeclared without dllimport attribute: previous dllimport ignored
debug\moc_qsql_psql.cpp:94: warning: 'virtual int QPSQLDriver::qt_metacall(QMeta
Object::Call, int, void**)' redeclared without dllimport attribute: previous dll
import ignored
debug\moc_qsql_psql.cpp:68: error: definition of static data member 'QPSQLDriver
::staticMetaObjectExtraData' of dllimport'd class
mingw32-make[1]: *** [debug/moc_qsql_psql.o] Error 1
mingw32-make[1]: Leaving directory `C:/QtSDK/src/psql'
mingw32-make: *** [debug] Error 2

C:\QtSDK\src\psql>
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734290
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__,

Код: plaintext
1.
2.
3.
4.
5.
debug\moc_qsql_psql.cpp:81: warning: 'virtual const QMetaObject* QPSQLDriver::metaObject() const' redeclared without dllimport attribute: previous dllimport ignored
debug\moc_qsql_psql.cpp:86: warning: 'virtual void* QPSQLDriver::qt_metacast(const char*)' redeclared without dllimport attribute: previous dllimport ignored
debug\moc_qsql_psql.cpp:94: warning: 'virtual int QPSQLDriver::qt_metacall(QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored
debug\moc_qsql_psql.cpp:68: error: definition of static data member 'QPSQLDriver::staticMetaObjectExtraData' of dllimport'd class
mingw32-make.exe[1]: *** [debug/moc_qsql_psql.o] Error 1


Это явно проблемы с конфигурацией.
Код этот должен ЭКСПОРТИРОВАТЬ класс, потому что ты собираешь саму библиотеку, которая будет потом использоваться,
а он сконфигурён так, как если бы ты собирал приложение, его использующее.

Как надо конфигурировать -- не знаю... Надо думать.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734297
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__Попытка сборки в консоли:

}{абр

авторНасколько я понимаю, по-умолчанию, SQL драйверы собираются статически, т.е. для линковки с QtSql.



Он понимает неправильно, хотя бы для 5-ых версий -- там всё собирается по умолчанию как плагины.

Но, видимо, путь в общем всё же правильный...

Pupil__В "c:\psql - PostgreSQL 9.3 (не драйвер)
Причем здесь Перл? Какую версию (если она нужна) надо использовать и как подключать в Qt?

Команды
cd src\plugins\sqldrivers\psql
qmake psql.pro выполняются, а make выдает ошибку, аналогично сборке в Креаторе:




Ну, блин, надо ему Перл -- так поставь...

Версию поставь последнюю.

Для MinGW/SYS есть тоже online установщик, и там просто можно тыкнуть и доставить Perl.

В ошибках пока всё то же самое -- он пытается компилироваться как будто из пользовательского приложения.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734568
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, я понимаю, что на Qt 5.x.x. все прекрасно.
Что касается сборки - то как всегда в стиле Qt- скачал Перл с сайта - нет никакого FAQ - к какой версии Qt оно корректно подключается и куда его пихать и что где прописывать, чтобы консоль его уразумела...
При задаче надстроить научный модуль МКС - станцию надо разобрать полностью, перемонтировать генераторы, переклонировать астронавтов, подключить инопланетный кристалл и собрать снова, а потом смотреть - а выживут ли они ? )))
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734723
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, плагин собран. Еще один прикол на пути - подключение его в готовый проект ) Quest продолжается... Comedy на первом )
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734759
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__MasterZiv, плагин собран. Еще один прикол на пути - подключение его в готовый проект ) Quest продолжается... Comedy на первом )

Какие файлы получил ?

С остатком квеста помогу -- да и было уже тут -- это не сложно.

сейчас найду ссылку на пост, кину.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734775
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qsqlpsqld4.dll и qsqlpsql4.dll и 2-а фала с расширением .а.
Фундаментальный вопрос: что надо прописать в файл .pro проекта и, чтобы оно при создании подключения в структуре QSqlDatabase
увидело саму БД )))
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734795
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__qsqlpsqld4.dll и qsqlpsql4.dll и 2-а фала с расширением .а.


Нужны ТОЛЬКО .dll -- с суффиксом 'd' -- это отладочная версия, без 'd' -- релизная -- НЕ ПЕРЕПУТАЙ!!

.a не нужны.

Далее *.dll нужно положить в каталог, где ты собираешь твоё приложение и откуда оно будет запускаться (и потом в дистрибутиве разместить так же), в подкаталог sqldrivers ,
а библиотеки, от которых зависит твоё приложение (QT-шные и прочие) и (!) плагин для PostgreSQL (т.е. libpgsql или как его там ) -- в сам каталог приложения, в "корень" размещения приложения, рядом с .exe.

Есть ещё вариант прописать пути ко всем нужным библиотекам *.dll для твоего приложения в переменную PATH, тогда всё равно где они будут лежать, но так потом проще распространять приложение.

в итоге должна получиться примерно такая структура каталогов и файлов
(на примере моего приложения loggyview):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
ziv@xozzo:~/tmp/loggyview-2$ tree 


.
├── activemq-cpp.dll
├── icudt51.dll
├── icuin51.dll
├── icuuc51.dll
├── libapr-1.dll
├── libEGLd.dll
├── libEGL.dll
├── libGLESv2.dll
├── libmysql.dll
├── loggyview.exe
├── loggyview-run.bat
├── msvcp100.dll
├── msvcr100.dll
├── platforms
│   ├── qminimald.dll
│   ├── qminimal.dll
│   ├── qminimald.pdb
│   ├── qoffscreend.dll
│   ├── qoffscreen.dll
│   ├── qoffscreend.pdb
│   ├── qwindowsd.dll
│   ├── qwindows.dll
│   └── qwindowsd.pdb
├── Qt5Core.dll
├── Qt5Gui.dll
├── Qt5Sql.dll
├── Qt5V8.dll
├── Qt5Widgets.dll
├── Qt5Xml.dll
└── sqldrivers
    ├── qsqlited.dll
    ├── qsqlite.dll
    ├── qsqlited.pdb
    ├── qsqlmysqld.dll
    ├── qsqlmysql.dll
    ├── qsqlodbcd.dll
    ├── qsqlodbc.dll
    ├── qsqlodbcd.pdb
    ├── qsqlpsqld.dll
    ├── qsqlpsql.dll
    └── qsqlpsqld.pdb

2 directories, 39 files


Pupil__Фундаментальный вопрос: что надо прописать в файл .pro проекта и, чтобы оно при создании подключения в структуре QSqlDatabase
увидело саму БД )))


ничего.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38734801
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Код: plaintext
1.
2.
3.
 
 ├── qsqlpsqld.dll
 ├── qsqlpsql.dll


Тут у меня небольшая помарка, qsqlpsqld.dll и qsqlpsql.dll одновременно не нужны, либо то, либо другое.
В отладочную версию нужно класть qsqlpsqld.dll, в релизную -- qsqlpsql.dll
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735246
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, у меня истерика.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735252
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, собрал я dll по данной инструкции: .

Скопировал данные dll во все места: в папку примера, в пример/debug и пример/release
и т.д. Не видит оно драйвера Qt. Пример в приложении к теме.

Попытался "войти" через другую дверь и подключиться к PostgreSQL с помощью ODBC - для LabVIEW я это с полоборота сделал. И здесь -стопкран )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QDateTime>
#include <QtSql/QPSQLDriver>
#include <QtSql/QODBCResult>
#include <QSqlDatabase>
#include <QSqlDriver>
#include <QSqlError>

#define DB_DRIVER_ODBC3 "QODBC3"
#define DB_DRIVER_POSTGRE "PostgreSQL"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    qDebug() << QCoreApplication::libraryPaths();
    QStringList list = QSqlDatabase::drivers();
    for(int x = 0; x < list.length(); x++)
        ui->log->append(list.at(x));
    
    QSqlDatabase db = QSqlDatabase::addDatabase(DB_DRIVER_ODBC3);
    
    ui->log->append(tr("---<br><b>QPSQL-driver is ")
                    +(db.isValid()
                      ? tr("<font color=green>OK</font></b>")
                        : tr("<font color=red>NOT</font></b>")));
       
    db.setDatabaseName("DRIVER={QODBC3};Server=(127.0.0.1);Port=(5432);Database=(test_base); Uid={postgres};Pwd=(12345678)");
    db.open();

    if(db.open())
    {
    qDebug() <<"opened" ;
    db.close();

    }
    else
    {
    qDebug() << db.lastError().text();
    }
}



"Звезда в шоке" )
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735253
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735344
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__MasterZiv, у меня истерика.

Don't panic!
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735728
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, благодарю тебя за моральную поддержку как в Крепком орешке 1. И не стоит меня винить в отсутствии навыках гугленья. Я нашел массу статей. Только, что у кого-то идет ЛеГко. У меня тоже самое - ни Х... не работает... )
И вопрос здесь не в структуре файлов и куда их пихать, а в шаманском устройстве Qt: в этом отношении цивилизация явно сделала шаг назад )))
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735750
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
offtopic
само собой, раз
Pupil__ у кого-то идет ЛеГко.

но
Pupil__ У меня тоже самое - ни Х... не работает...
то проблема, безусловно
Pupil__ в шаманском устройстве Qt
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735895
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
QWidget w;
    
        QMessageBox::information(&w, QString( "DRIVERS" ), driverList );

        db = QSqlDatabase::addDatabase( "QODBC3", "FirstConn" );
        if ( db.isValid() )
        {
            db.setDatabaseName( "DRIVER={Microsoft OLE DB for ODBC Drivers};FIL={PostgreSQL30}" );
            if ( db.open() )
            {
                // SUCCESS //
                QMessageBox::information( &w, QString( "SUCCESS" ), QString( "DATABASE OPENED SUCCESSFULLY" ) );

                w.show();
                qDebug() << "connect";

                //return a.exec();
            }
            else
            {
                // FAILURE //
                QMessageBox::question( &w, QString( "ERROR" ), db.lastError().text() );
            }
        }
        else
        {
            // FAILURE //
            QMessageBox::critical( &w, QString( "CRITICAL ERROR" ), db.lastError().text() );
        }


дает следующее: "QSQLLITE QODBC3 QODBC".
Друзья, какие волшебные строки необходимо заполнить, чтобы оно подключилось к СУБД PostgreSQL?

Сейчас оно при:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
QSqlDatabase db = QSqlDatabase::addDatabase("ODBC");

   
    db.setHostName("DRIVER=PostgreSQLW35};Server=127.0.0.1;Port=5432;Database=test_base); Uid=postgres;Pwd=12345678");

    
    //db.setHostName("localhost");
    //db.setPort(5432);
    //db.setUserName("postgres");
    //db.setPassword("12345678");
    //db.setDatabaseName("test_base");



выдает:
QSqlDatabase: ODBC driver not loaded

У меня в свойствах канала передачи данных ODBC
для PostgreSQL два соединения: PostgreSQL35W и PostgreSQL30
DRIVER надо присваивать что-то другое?
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735963
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rovanсамо собой, раз
Pupil__ у кого-то идет ЛеГко.
но
Pupil__ У меня тоже самое - ни Х... не работает...
то проблема, безусловно
Pupil__ в шаманском устройстве Qt


Да нет, наоборот, в большом количестве неактуальных статей.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735965
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__Попытался "войти" через другую дверь и подключиться к PostgreSQL с помощью ODBC - для LabVIEW я это с полоборота сделал. И здесь -стопкран )

Зря. Коней на переправе не меняют.
Запутаешься лишь больше.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735973
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv , а кто сказал, что я меняю. Играю одновременно на 2-х досках )
Что-то по существу можешь намекнуть?
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735974
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__
У меня в свойствах канала передачи данных ODBC
для PostgreSQL два соединения: PostgreSQL35W и PostgreSQL30
DRIVER надо присваивать что-то другое?

Не знаю. Там должно быть имя драйвера ODBC для PoatgreSQL.
А какое правльное -- зависит от версии PG и твоих желаний -- может быть один лучше, другой хуже.
Я не знаю, я с PG не коннектился по ODBC.
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735977
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pupil__,

"QSQLLITE QODBC3 QODBC "
QSqlDatabase db = QSqlDatabase::addDatabase(" ODBC ");
Найди одно отличие в выделенном. Пользуйся драйверами из списка.
Как это сделать - читай в документации .
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38735982
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupil__MasterZiv , а кто сказал, что я меняю. Играю одновременно на 2-х досках )
Что-то по существу можешь намекнуть?

Да я уже запутался немного.

Если это очень надо, то, думаю, надо лучше устроить с тобой сеанс связи по skype.

Дай мне сегодня попробовать самому это сделать (собрать драйвер для PG).
...
Рейтинг: 0 / 0
Qt + Postgresql
    #38736019
Pupil__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, dll первая в приложении

Модератор: Вложение удалено.
не надо публиковать бинарники.
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt + Postgresql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]