Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2015, 17:25   #1
Fellics{новичок}
Форумчанин
 
Аватар для Fellics{новичок}
 
Регистрация: 25.03.2008
Сообщений: 159
По умолчанию Клиент для работы с postgres на c++

Всем доброго времени суток. Требуется написать клиент для работы с postgresql под windows. Т.к. ранее с подобными задачами не встречался попытался найти простой пример хотя бы соединения с БД. Нашел следующий код:
Код:
#include <iostream>
#include <libpq-fe.h>
#pragma comment(lib, "libpq.lib")

using namespace std;

int main(int argc, char **argv)
{
  // Дескриптор соединения с базой данных
  PGconn *conn;
  // Дескриптор результирующей таблицы
  PGresult *res;
  // Параметры соединения
  const char * conninfo = "dbname = postgres user=postgres password=master";

  // Устанавливаем соединение (ВНИМАНИЕ имя вашей базы данных)
  conn = PQconnectdb(conninfo);
  // Убеждаемся в том, что соединение установлено
  if (PQstatus(conn) != CONNECTION_OK)
  {
    cout << "Connection to database failed: " << PQerrorMessage(conn) << endl;
    system("pause");
    return 1;
  }
  // Выполняем запрос
  res = PQexec(conn, "SELECT VERSION();");
  if (PQresultStatus(res) != PGRES_TUPLES_OK)
  {
    cout << "SQL-query failed: " << PQerrorMessage(conn) << endl;
    PQclear(res);
    system("pause");
    return 1;
  }
  // Выводим результат
  cout << PQgetvalue(res, 0, 0) << endl;
  // Освобождаем память, выделенную под результирующую таблицу
  PQclear(res);
  // Закрываем соединение с базой данных
  PQfinish(conn);

  // Пауза перед закрытием
  system("pause");
  return 0;
}
создал проект в VS настроил в свойствах проекта где искать libpq-fe.h и libpq.lib.
Но в итоге при сборке ловлю следующие ошибки
Цитата:
1>ptest.obj : error LNK2019: unresolved external symbol _PQfinish referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQgetvalue referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQclear referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQresultStatus referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQexec referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQerrorMessage referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQstatus referenced in function _main
1>ptest.obj : error LNK2019: unresolved external symbol _PQconnectdb referenced in function _main
1>C:\Users\fellics\Desktop\testPGSQ L\ptest\Debug\ptest.exe : fatal error LNK1120: 8 unresolved externals
Пытался найти ответ в поисковиках, безуспешно. С моей точки зрения все функции фигурирующие в ошибках должны быть найдены в libpq.lib. Но этого не происходит. Надеюсь кто нибудь сможет дать исчерпывающий ответ. Заранее благодарю.
Fellics{новичок} вне форума Ответить с цитированием
Старый 08.02.2015, 20:17   #2
Fellics{новичок}
Форумчанин
 
Аватар для Fellics{новичок}
 
Регистрация: 25.03.2008
Сообщений: 159
По умолчанию

В общем тему можно закрывать, я решил проблему, но т.к. я не нашел конкретной информации о подобной проблеме в интернете напишу здесь (может кому нибудь пригодится). В общем проблема кроется в библиотеке libpq.lib. Мне надо было работать с Postgresql 9.3 видимо в данном релизе с библиотекой какая то проблема. Поэтому я накатил версию 8.4, взял все нужные мне заголовочные файлы, libpq.lib, а так же *.dll. БД в этом релизе у меня не поднялась (я не смог законнектиться даже через pgAmin), однако после удаления старой версии и установки нужной версии 9.3 я смог получить доступ из своей программы.
Fellics{новичок} вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
postgres курсоры SkrudjMakdak SQL, базы данных 1 08.03.2014 14:12
Delphi, Postgres и Zeos shidoari БД в Delphi 3 24.09.2013 11:09
Нужен клиент для работы с асинхронным сервером MoT9I C# (си шарп) 4 25.01.2013 10:44
Для облегчения работы с TFS - приложение для работы над дефектами и задачами Аякс Софт 1 18.03.2009 11:43
Помогите выбрать режим работы клиент сервер tarakan1983 Помощь студентам 4 24.10.2008 12:31