PQXX
Вступление
Я всем своим ученикам рекомендую использовать opensource пакетный менеджер vcpkg. Потому что он использует только cmake и позволяет просто и быстро подключить новую библиотеку к проекту. Этот пакетный менеджер просто скачивает с гитхаба исходники (или другого открытого ресурса), собирает и раскладывает по своим папочкам однообразно, не зависимо от вида библиотеки.
Установка vcpkg
- Открываем консоль, например на диске C.
- Далее в ней по комментариям:
::Комментарии можно не печатать ::Получаем vcpkg из гитхаба git clone https://github.com/microsoft/vcpkg ::Переходим в скачанный каталог cd vcpkg ::Посмотрим на содержимое директории dir /D ::создаём утилиту vcpkg.exe под нашу систему и компилятор bootstrap-vcpkg.bat ::устанавливаем pqxx для x64 ::Придётся подождать первый раз, нужны дополнительные утилиты vcpkg.exe install libpqxx:x64-windows ::Готово, теперь можно подключать к проекту
Проект для работы с БД
Создайте каталог, в котором будете работать с БД. В нём располагаются следующие файлы:
Скопируйте содержимое в них через текстовый редактор.
📃CMakeLists.txt:
cmake_minimum_required(VERSION 3.11)
project(test_sql)
set(CMAKE_CXX_STANDARD 20)
find_package(PostgreSQL REQUIRED)
find_package(libpqxx CONFIG REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE PostgreSQL::PostgreSQL libpqxx::pqxx)
📃main.cpp:
#include <iostream>
#include <pqxx/pqxx>
int main()
{
try {
pqxx::connection c(
"host=localhost " //обязательно пробел
"port=5432 " //стандартный порт psql
"dbname=postgres " //своё имя базы
"user=postgres " //своё имя пользователя
"password=11111"); //свой пароль
std::cout << "Connection OK\n";
//как на слайде 33 выполнение insert запроса
pqxx::work tx{ c };
tx.exec("CREATE TABLE demo( id SERIAL PRIMARY KEY, field text NULL);");
tx.commit();
std::cout << "Create table ok";
}
catch (pqxx::sql_error e)
{
std::cout << e.what() << std::endl;
}
catch (std::exception e)
{
std::cout << e.what() << std::endl;
}
}
📃 generate.bat:
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
cmake -G "Visual Studio 17 2022" -A "x64" -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -Bbuild .
PAUSE
Скриншот - выглядит у вас примерно так:

Пояснения:
- main.cpp - исходник, в котором путь до библиотеки в угловых скобках, компилятор должен найти в системных каталогах при сборке.
- CMakeLists.txt - в нём указываются find_package и target_link_libraries как подсказке после удачной установки либы в vcpkg
- generate.bat - командный файл, который генерирует решение для visual studio внутри каталога build. Его надо править, если у вас другая версия студии или vcpkg поместили в другие место. Как раз он создаёт связь для проектников студии с либами vcpkg.
Сборка и запуск
-
Запускаем батник, проверяем что успешно отработал и появился каталог build с sln внутри. Лог успешной отработки и содержимое каталога build:

-
Открываем test_sql.sln в студии и назначаем активным проектом test_sql:

Правой кнопкой, назначить активным проектом, проверяем, стал жирный. - Собираем проект, проверяем лог сборки. Так выглядит успешный лог

- Работаем в студии, либо можно запускать из каталог debug, там должна быть экзешка с dll

В дальнейшем таким способом можете пробовать ставить Wt-библиотеки. Также посмотрите скринкаст с установки Catch2