Форум программистов, компьютерный форум CyberForum.ru

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
lostandleft
2 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 96
#1

Не могу подключить PG к проекту VS2015, с++ - PostgreSQL

15.11.2016, 09:30. Просмотров 466. Ответов 16
Метки нет (Все метки)

Ребят привет.
Решил посмотреть как будет работать PG, попробовать её в деле так сказать.
Но возникла проблема, никак не могу её подключить к проекту.

Делал по схеме:
Иду сюда, и скачиваю сборку х86
Распаковываю где-нибудь, вытаскиваю из неё каталог include, а также 2 файла библиотек: libpq.dll, libpq.lib

Дальше в удобном для меня месте,создал каталог:

H:\Android\C++\VisualStudio\Postgress

В него собственно и положил две папки lib и include:
H:\Android\C++\VisualStudio\Postgress\include
H:\Android\C++\VisualStudio\Postgress\lib

Соответственно в папку lib засунул libpq.dll, libpq.lib скачанные ранее.
В include заголовки.

Дальше:
1 -> свойства проекта -> с++ -> общие -> Дополнительные каталоги включаемых файлов = H:\Android\C++\VisualStudio\Postgress
2 -> свойства проекта -> с++ -> общие -> Дополнительные каталоги включаемых файлов = H:\Android\C++\VisualStudio\Postgress\lib

3 -> свойства проекта -> Компоновщик -> общие -> Дополнительные каталоги библиотек = H:\Android\C++\VisualStudio\Postgress\lib

4 -> свойства проекта -> Компоновщик -> ввод -> Дополнительные зависимости = H:\Android\C++\VisualStudio\Postgress\lib\libpq.dll
H:\Android\C++\VisualStudio\Postgress\lib\libpq.lib


5 В фаил stdafx.h добавляю:
C++
1
#include "include/libpq/libpq-fs.h"
Никаких проблем не вижу, фаил нормально цепляется, ошибки нет. Даже пробую компилироваться, все без порблем.

6 В главном файле CPP проекта добавил 2 строки
C++
1
2
#pragma comment(lib, "libprotobuf.dll")
#pragma comment(lib, "libprotobuf.lib")
Ну думаю, полетели...ввожу
C++
1
PGconn           *conn;
И сразу-же VS грозно плюется ошибкой, "Идентификатор PGconn не определен"

Ребят я что-то в ступоре, подскажите чего я делаю не так?

Кликните здесь для просмотра всего текста
PS Как же я ненавижу эти танцы с бубном при настройки среды, бесит просто, ну почему же просто нельзя начать кодить, без этих плодово-ягодных насаждений, еще НИ ОДНОЙ сторонней библиотеки не смог подключить без каких-либо проблем, ни одной, постоянно какой-то геморрой


Добавлено через 1 час 21 минуту
Цитата Сообщение от lostandleft Посмотреть сообщение
6 В главном файле CPP проекта добавил 2 строки
Косяк увидел, изменение на:
C++
1
2
#pragma comment(lib, "libpq.dll")
#pragma comment(lib, "libpq.lib")
Ничего не дало

Добавлено через 5 часов 7 минут
Ребят помогите пожалуйста, уже скачал с нуля PGSQL установил, проделал тоже самое с новыми каталогами, которые в реестрах прописаны...результата нуль.
Удалять чтоли и MYSQL опять юзать...голову сломал в чем дело то почему не работает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2016, 09:30     Не могу подключить PG к проекту VS2015, с++
Посмотрите здесь:

C++ Не могу подключить Header file к проекту...
C# Не могу подключить к проекту ссылку на System.Runtime.Serialization.Formatters.Binary
.NET Подключить F# к проекту на C#
C# Подключить БД к проекту
Не могу подключить базу к проекту C# MySQL
C++ Builder Не могу подключить к консольному проекту AnsiString

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
15.11.2016, 14:04     Не могу подключить PG к проекту VS2015, с++ #2
Цитата Сообщение от lostandleft Посмотреть сообщение
Косяк увидел, изменение на:

#pragma comment(lib, "libpq.dll")
#pragma comment(lib, "libpq.lib")
Зачем вы это добавляете???
lostandleft
2 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 96
15.11.2016, 15:11  [ТС]     Не могу подключить PG к проекту VS2015, с++ #3
Потому что не знаю что еще добавить.
Пишешь, не пишешь без разницы.
Студия говорит, что "Идентификатор PGconn не определен" выделяет его красным

Добавлено через 5 минут
хотя проект компилируется...не знаю, ошибка отображения чтоли но меня напрягает, не понимаю почему красное
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
15.11.2016, 17:48     Не могу подключить PG к проекту VS2015, с++ #4
У меня под рукой сейчас студии нет, может завтра получится посмотреть. По описанию пункты 1, 2, 3 и 4 вроде подходящие, но надо посмотреть на натуре.
lostandleft
2 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 96
16.11.2016, 17:59  [ТС]     Не могу подключить PG к проекту VS2015, с++ #5
Спасибо буду ждать ответ...мимоходом пересобрал LIB из ДЛЛ как указано тут, ничего не дало
Надуюсь у Вас VS2015 может версия имеет значение...было так с одной библиотекой...и надеюсь гемороя с Cmake не предвидится

Добавлено через 3 часа 6 минут
grgdvo, Если у Вас будет возможность, возьмите пожалуйста с рабочей машины, на которой все работает, прилинкованные файлы DLL и LIB, может быть дело в библиотеках, не знаю, как вариант Клиентские и Серверные библиотеки различны? Хотя я уже 4 сборки пробовал с оф сайта, никак. Видимо какой-то секрет есть что-ли.

Добавлено через 1 час 27 минут
Таак, проблему порешал странно что никто в примерах по всему Вебу не пишет об этом, опять грабли ... уныло, ну пишу сам может кому пригодится.
В общем первое что сделал было это
Удивило, размер собранной lib получился значительно больше нежели в откомпиленных проектах ранее.
Это не помогло, опять теже грабли, стал копать глубже и решил подключить дополнительные заголовочные файлы содержащие в себе название библиотеки.

После добавления одной студия перестала краснеть

В итоге листинг инклуд такой получился:

C++
1
2
#include "libpq/libpq-fs.h"
#include "libpq-fe.h"
Но это пол беды, проблемы начались дальше, по всех используемых заголовочных файлах посыпались пути. Часть из них, на которые ругалась студия пришлось переписывать вручную вписывая нормальные пути к файлам.
Бред полный в общем.

Откатывать библиотеку lib и dll на те что в инсталляторах нет ни малейшего желания, главное заработало...

PS реально ни в одном примере по использованияю PG не видел того, что нужен второй заголовок, и нигде не было упоминания что геморрой с путями будет, как так то, ужас...специально что ли скрывают это...и это уже реально не в первый раз, протобуф когда ставил те же грабли были, никакой наглядной документации (((
2 дня потерял на этот бред

Пожалуйста, если есть рабочий вариант, зазипуйте и вышлите свои lib dll и папку include, которые работают на машине, очень прошу, заплатки понапихал, но ведь колхоз выходит, может боком вылезти.

Добавлено через 2 часа 9 минут
Парни частично проблему как и написал порешал, но возникла проблема с кодом, не могу подлючиться к БД находящейся на другой машине в локальной сети.

Локальный адрес моего интерфейса 192.168.0.100 локальный адрес сервера с установленной БД 192.168.0.130

Пишу такую каку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        const char *conninfo;
        PGconn     *conn;
        int         nnotifies;
        PGnotify   *notify;
 
        conn = PQconnectdb("hostaddr = '192.168.0.130' port = '5432' dbname = 'reg_user' user = 'postgress' password = 'mypass' connect_timeout = '0'");
 
        if (PQstatus(conn) != CONNECTION_OK)
        {
            fprintf(stderr, "Connection to database failed: %s",
                PQerrorMessage(conn));
            
        }
 
else { fprintf("Good Done");
}
На что постоянно выплевывает ошибку:
connection to database failed: FATAL: no pg_hba.conf entry for host "192.168.0.100", user "postgress", database "reg_user"
Вопрос, куда пихать еще и этот pg_hba.conf с параметрами соединения?
Что-то не хочет со мной слоненок дружить ни в какую, все время упирается

Добавлено через 17 часов 2 минуты
Все подключился, суть ошибки была в том, что на сервере не был открыт доступ для пользователей, что очнеь странно, так какя изначально ставил галочку доступна для всех, при формировании БД.
Но вроде бы получилось, коннект удался.

Все еще прошу нормальный вариант папки INCLUDE и библиотек, пожалуйста кому не жаль, дайте заведомо рабочий вариант.
У меня пути в заголовках не соответсвуют реальному расположению файлов, связи битые, чтобы проект откомпилировать пришлось с 10 файлов переписать ручками указывая реальное размещение файлов, это может боком выйти.
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
17.11.2016, 13:21     Не могу подключить PG к проекту VS2015, с++ #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от lostandleft Посмотреть сообщение
Все еще прошу нормальный вариант папки INCLUDE и библиотек, пожалуйста кому не жаль, дайте заведомо рабочий вариант.
У меня пути в заголовках не соответсвуют реальному расположению файлов, связи битые, чтобы проект откомпилировать пришлось с 10 файлов переписать ручками указывая реальное размещение файлов, это может боком выйти.
А оставлю как все таки небольшой хауту здесь.
К сожалению не нашлось виртуалки с VS2015, но нашлась с VS2008.
Я с Windows давно не связан.
На вопрос, чем отличается VS2015 от VS2008 некоторые найденные "специалисты" сказали: "да одна фигня, интерфейс похож!".
Так что я со спокойной совестью выкладываю картинки от 2008 в надежде, что в 2015 можно будет интуитивно поставить соответствующие параметры.

1) Итак имеем установленный рабочий PG 9.6.1 (дистрибутив с оф. сайта, установка в паракликов, пароль postgres)
Видим такую картинку
Не могу подключить PG к проекту VS2015, с++
2) Берем стандартный пример из PG
Не могу подключить PG к проекту VS2015, с++
3) Открываем студию и создаем пустой проект
Не могу подключить PG к проекту VS2015, с++Не могу подключить PG к проекту VS2015, с++Не могу подключить PG к проекту VS2015, с++Не могу подключить PG к проекту VS2015, с++
4) Получаем вот
Не могу подключить PG к проекту VS2015, с++
5) Копируем файл testlibpq.c в проект
Не могу подключить PG к проекту VS2015, с++
6) Добавляем в проект
Не могу подключить PG к проекту VS2015, с++Не могу подключить PG к проекту VS2015, с++
7) Ну и компилируем....
Не могу подключить PG к проекту VS2015, с++
УПС!!! Закономерные ошибки. include'ы не найдены!!!
8) Меняем свойства проекта
Не могу подключить PG к проекту VS2015, с++
Не могу подключить PG к проекту VS2015, с++
Не могу подключить PG к проекту VS2015, с++
Не могу подключить PG к проекту VS2015, с++
lostandleft
2 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 96
17.11.2016, 13:27  [ТС]     Не могу подключить PG к проекту VS2015, с++ #7
Не поверите, делал все тоже самое, я же расписал...видимо карма плохая
спасибо, что попробовали
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
17.11.2016, 13:27     Не могу подключить PG к проекту VS2015, с++ #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
9) Компилируем снова
ИЗМЕНИЛИ ТРИ ОСНОВНЫХ ПАРАМЕТРА!!:
а) где искать инклуды
б) где искать либы
в) какую либу подключать
этого должно быть достаточно для подавляющего большинства приложений. В код ничего не добавляем
Итак...
Не могу подключить PG к проекту VS2015, с++
Успешно!

10) Идем запускать
Не могу подключить PG к проекту VS2015, с++
УПС!!! Не найдены динамически прилинкованные библиотеки.

11) Идем править системные переменные
Не могу подключить PG к проекту VS2015, с++
По идее должно работать уже, но я на всякий случай даже перезапустился (хотя считаю это полным бредом).

12) Ииииии...
Не могу подключить PG к проекту VS2015, с++
Досада, неправильно задана строка соединения в коде

13) Меняем ее
Не могу подключить PG к проекту VS2015, с++
Компилируем

14) Иииии...
Не могу подключить PG к проекту VS2015, с++
Наконец-то
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
17.11.2016, 13:36     Не могу подключить PG к проекту VS2015, с++ #9
И в заключении собственно сам проект
testlibpq.zip
Вероника7
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
08.03.2017, 20:07     Не могу подключить PG к проекту VS2015, с++ #10
grgdvo, Здравствуйте делала всё по вашей инструкции,но всё равно выдаёт ошибки:Ошибка 9 error LNK2019: ссылка на неразрешенный внешний символ _PQfname в функции _mainи и тд
Не могли бы Вы помочь разобраться?
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
09.03.2017, 02:18     Не могу подключить PG к проекту VS2015, с++ #11
Перепроверьте все пути по картинкам, что относится уже к стадии линковки (п.8). Судя по ошибке, компилятор (линковщик) не может найти библиотеку libpq.dll (libpq.lib)
Вероника7
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
09.03.2017, 14:14     Не могу подключить PG к проекту VS2015, с++ #12
10192643]grgdvo, Я вроде бы проверяла библиотеки по указанным путям точно есть в postfresql , не знаю насчёт вот этой дополнительной зависимости и в студии не смогла найти эти библиотеки.
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
09.03.2017, 14:35     Не могу подключить PG к проекту VS2015, с++ #13
Кроме сверяться с картинками, больше ничего не могу посоветовать.
Где-то у вас недочет какой-то в настройках.
Надо все по шагам проверять, попробуйте начать с начала.

Цитата Сообщение от Вероника7 Посмотреть сообщение
не знаю насчёт вот этой дополнительной зависимости и в студии не смогла найти эти библиотеки.
Вот здесь не понял, про какие дополнительные зависимости и про какие эти библиотеки вы говорите??
Вероника7
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
09.03.2017, 19:07     Не могу подключить PG к проекту VS2015, с++ #14
Цитата Сообщение от Вероника7 Посмотреть сообщение
grgdvo
Вот я проверила но не знаю те ли именно файлы в папках? У меня пропадает подчёркивание в строчке с include ,но выскакивают ошибки как на скрине.
Миниатюры
Не могу подключить PG к проекту VS2015, с++   Не могу подключить PG к проекту VS2015, с++   Не могу подключить PG к проекту VS2015, с++  

Не могу подключить PG к проекту VS2015, с++   Не могу подключить PG к проекту VS2015, с++   Не могу подключить PG к проекту VS2015, с++  

Вероника7
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
09.03.2017, 19:14     Не могу подключить PG к проекту VS2015, с++ #15
grgdvo, И придётся ли мне из-за этого что-то переустанавливать?Спасибо.
grgdvo
518 / 459 / 126
Регистрация: 02.09.2012
Сообщений: 1,344
10.03.2017, 00:39     Не могу подключить PG к проекту VS2015, с++ #16
Мда, действительно все соответствует.
Есть еще такой момент, который может возникать.
У вас система 32-разрядная или 64-разрядна? И вы какой код компилируете 32 или 64?? И какая версия PostgreSQL установлена, 32 или 64??

На память я не знаю как в VS посмотреть разрядность собираемого кода, нету под рукой ничего.
Но факт в том, что для сборки 64-разрядного приложения не будут использоваться зависимые библиотеки, если они 32 разрядные. И наоборот. Попробуйте этот вариант проверить, больше ничего в голову пока не приходит.
Вероника7
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
10.03.2017, 19:13     Не могу подключить PG к проекту VS2015, с++ #17
grgdvo, windows 64, postgres 64 , студия уже не помню давно устанавливала ,но по-моему тоже 64
Yandex
Объявления
10.03.2017, 19:13     Не могу подключить PG к проекту VS2015, с++
Ответ Создать тему
Опции темы

Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru