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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Postgresql + Qt 5.5 (как с ней работать)  (Прочитано 20963 раз)
rudireg
Гость
« : Декабрь 11, 2016, 11:55 »

Привет.
У меня стоит Qt 5.5.1 (MSVC 2013, 32 bit)
Хочу работать с Postgresql
Имею ошибку QSqlDatabase: QPSQL driver not loaded
Знаю что:
1) Для работы с SQLite ничего устанавливать не надо, все работает из коробки.
2) Для работы с MySQL необходимо устанавливать на компьютер базу данных MySQL +  Апаче + клиент phpmyadmin для удобства просмотра

Вопрос:  Нужно ли что-либо устанавливать для работы с Postgresql как например для MySQL ? Или же все будет работать без установок как в случае с SQLite ?
Ведь если программу писать для клиентов, то они же не будут идти на сайт базы данных и устанавливать предварительно целую базу данных.

Вопрос 2: Как я понял что в Qt 5.5  драйвер не нужно собирать? он уже в коробке?
Тогда почему  имею ошибку : QPSQL driver not loaded
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #1 : Декабрь 11, 2016, 12:01 »

Тогда почему  имею ошибку : QPSQL driver not loaded

Привет!

Не доступны библиотеки postgresql.
Записан
rudireg
Гость
« Ответ #2 : Декабрь 11, 2016, 12:07 »

Вот мои либы для работы с базами
Где qsqlpsql.dll - это для работы с Postgresql ?

Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #3 : Декабрь 11, 2016, 12:16 »

Я имею ввиду библиотеки самого PostgreSQL. Такие как libpq.dll например.
А qsqlpsql.dll, да это плагин для работы с PostgreSQL, но без библиотек PostgreSQL он работать не будет.

PS. Проще всего на компе где пишется код, установить PostgreSQL (для тестов все равно понадобится). И прописать пути в Path до /bin и /lib PostgreSQL.
« Последнее редактирование: Декабрь 11, 2016, 12:19 от PimenS » Записан
rudireg
Гость
« Ответ #4 : Декабрь 11, 2016, 12:21 »

Я имею ввиду библиотеки самого PostgreSQL. Такие как libpq.dll например.
А qsqlpsql.dll, да это плагин для работы с PostgreSQL, но без библиотек PostgreSQL он работать не будет.

PS. Проще всего на компе где пишется код, установить PostgreSQL (для тестов все равно понадобится). И прописать пути в Path до /bin и /lib PostgreSQL.

А если я буду запускать программу на другом компьютере, то на другом компе нет нужды устанавливать PostgreSQL? Будет достаточно держать в папке с программой либы  libpq.dll  и все?
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #5 : Декабрь 11, 2016, 12:25 »

Да. Устанавливать не надо. В папке с программой от PostgreSQL нужны libpq.dll и еще несколько библиотек. 
Записан
rudireg
Гость
« Ответ #6 : Декабрь 11, 2016, 12:37 »

А где взять libpq.dll  и другие... я установил PostgreSQL для Windows 32 разрядная.
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #7 : Декабрь 11, 2016, 12:45 »

В /bin или /lib

прописать пути в Path до /bin и /lib PostgreSQL.
« Последнее редактирование: Декабрь 11, 2016, 12:49 от PimenS » Записан
rudireg
Гость
« Ответ #8 : Декабрь 11, 2016, 13:10 »

В /bin или /lib

прописать пути в Path до /bin и /lib PostgreSQL.
Вы имеете ввиду системную переменную PATH операционной системы Windows?

Добавил
C:\Program Files (x86)\PostgreSQL\9.6\bin;C:\Program Files (x86)\PostgreSQL\9.6\lib;C:\Program Files (x86)\PostgreSQL\9.6\include

Ошибка осталась
QSqlDatabase: QPSQL driver not loaded
« Последнее редактирование: Декабрь 11, 2016, 13:15 от rudireg » Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #9 : Декабрь 11, 2016, 13:28 »

Вы запускаете проект из MSVC?
Записан
rudireg
Гость
« Ответ #10 : Декабрь 11, 2016, 13:40 »

Вы запускаете проект из MSVC?
Да
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #11 : Декабрь 11, 2016, 13:46 »

Я с MSVC не пробовал работать. Может быть он не видит плагин qsqlpsql.dll

Попробуйте в main вывести qDebug() << QSqlDatabase::drivers();

какие драйвера видит qt?
Записан
rudireg
Гость
« Ответ #12 : Декабрь 11, 2016, 13:54 »

Я с MSVC не пробовал работать. Может быть он не видит плагин qsqlpsql.dll

Попробуйте в main вывести qDebug() << QSqlDatabase::drivers();

какие драйвера видит qt?

("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
Записан
rudireg
Гость
« Ответ #13 : Декабрь 11, 2016, 15:45 »

Перегрузил компьютер ошибка  более не возникла.
Но теперь появился другой вопрос.
При работе с SQLite  я мог сделать следующие настройки:

Код
C++ (Qt)
   QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", this->nameConnect);
   db.setDatabaseName(tableName);
   db.setHostName("127.0.0.1");
   db.setUserName("rudi");
   db.setPassword("rudi");
 
Я мог указать любое имя пользователя и пароль.
Теперь же используя QPostgreSQL
я не могу указать любое имя и пароль, пишет
"ВАЖНО:  пользователь \"rudi\" не прошёл проверку подлинности (по паролю)\nQPSQL: Unable to connect
Пароль проходит только при условии, что я укажу пароль который указал при установки PostgreSQL
Но позвольте господа, если я сделаю программу и запущу на ином компе где не установлен PostgreSQL, что будет с паролем?

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #14 : Декабрь 11, 2016, 15:51 »

1. Логин/пароль должен вводить юзер.
2. Настрой доступ с локального компа всем без пароля.
3. Постгрес это не скулайт, деплоить его немного сложнее.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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