Как подключить к приложению на С++ к БД PostgreSQL?

Всем привет. Мне нужно разобраться как подключить к С++ БД PostgreSQL . Я новичок и буду благодарна за помощь.


Ответы (1 шт):

Автор решения: KoVadim

Можно использовать апи от Postgres - https://www.postgresql.org/docs/7.1/libpqplusplus.html там есть и примеры, но как по мне, они какие то страшные - https://www.postgresql.org/docs/9.5/libpq-example.html

А можно поискать стороннего клиента, например http://pqxx.org/development/libpqxx/#quick-example где есть маленький компактный пример (вольный перевод - мой)

#include <iostream>
#include <pqxx/pqxx>

int main(int, char *argv[])
{
  pqxx::connection c{"postgresql://accounting@localhost/company"};
  pqxx::work txn{c};

  // Обычно для запросов к DB используется txn.exec().  Но если нужно только
  // одно значение, мы будем использовать txn.query_value() как замену.
  //
  // Используем txn.quote() для квотирования C++ строки в выражении SQL
  int employee_id = txn.query_value<int>(
    "SELECT id "
    "FROM Employee "
    "WHERE name =" + txn.quote(argv[1]));

  std::cout << "Updating employee #" << employee_id << '\n';

  // Обновим зарплату работника.  Используем exec0() для выполнения запроса и проверим
  // что на выходе пустой результат.  Если результат содержит данные -
  // будет сгенерированно исключение.
  //
  // ID - целое, поэтому нам не нужно его квотировать и брать в скобки
  // в запросе.  Просто сконвертируем в строку для PostgreSQL
  // используя to_string().
  txn.exec0(
    "UPDATE EMPLOYEE "
    "SET salary = salary + 1 "
    "WHERE id = " + pqxx::to_string(employee_id));

  // "утвердим наши изменения".
  txn.commit();
}

А ещё, если это разработка под Qt то там есть свои наполовину встроенные библиотеки.

→ Ссылка