【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)

关注 “测试开发自动化” 公众号,获取更多学习内容

一、前置条件

  1. 下载libpqxx【github传送门】
  2. 安装CMake工具【CMke传送门】
  3. 下载PostgreSQL【PostgreSQL传送门】

二、安装PostgreSQL工具

点击下载,直接安装即可。过程中出现的插件选择64位即可。那些都不重要。
在这里插入图片描述
安装完成后如下:
在这里插入图片描述

关注 “测试开发自动化” 公众号,获取更多学习内容

三、编译libpqxx库

  1. 从Github下载至本地,在文件夹下解压。
    在这里插入图片描述
  2. 管理员方式运行CMake软件(必须以管理员方式运行,否则可能会报错),填写Where is the source code Where to build the binaries 如下:

在这里插入图片描述

  1. 点击Configure Generate 按钮在这里插入图片描述

  2. 回到D:/libpqxx-master 路径下会生成一个build文件夹。
    在这里插入图片描述

  3. 使用管理员模式启动visual studio,打开libpqxx.sln工程文件(必须用管理员模式,否则后面构建会报错)
    在这里插入图片描述

  4. 右键ALL_BUILD >> 属性 >> 常规 >> C++通用标准 >> 最新C++ ,点击确定。
    在这里插入图片描述

  5. 设置为Release X64,分别右键INSTALL >> 生成,PACKAGE >> 生成,pqxx >> 生成。
    在这里插入图片描述

  6. build目录下会生成一个_CPack_Packages文件夹
    在这里插入图片描述

关注 “测试开发自动化” 公众号,获取更多学习内容

四、Visual Studio配置测试

新建自己的工程,属性中需要配置如下内容:
1)C/C++ >> 附加包含目录添加:

D:\libpqxx-master\build_CPack_Packages\win64\TGZ\libpqxx-7.8.0-win64\include

在这里插入图片描述

2)链接器 >> 附加库目录添加:

D:\PostgreSQL\15\lib
D:\libpqxx-master\build_CPack_Packages\win64\TGZ\libpqxx-7.8.0-win64\lib

在这里插入图片描述
3)链接器 >> 输入 >> 附加依赖项 添加:

pqxx.lib
libpq.lib
ws2_32.lib
wsock32.lib

在这里插入图片描述
4)测试程序


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

int main() {
    try {
        // 用您的云PostgreSQL数据库信息替换以下内容
        std::string connection_string =
           "host=your_host_name user=your_user_name password=your_password dbname=your_database_name port=your_port_number";
        pqxx::connection connection(connection_string);

        if (connection.is_open()) {
            std::cout << "Successfully connected to the PostgreSQL database." << std::endl;
        }
        else {
            std::cout << "Cannot open the PostgreSQL database." << std::endl;
            return 1;
        }

        pqxx::work transaction(connection);

        // 在这里执行您的数据库操作
        pqxx::result result = transaction.exec("SELECT * FROM  your_table_name");

        for (const auto& row : result) {
            for (const auto& column : row) {
                std::cout << column.c_str() << " ";
            }
            std::cout << std::endl;
        }

        transaction.commit();
        //connection.disconnect();
    }
    catch (const std::exception& e) {
        std::cerr << "Error: " << e.what() << std::endl;
        return 1;
    }

    return 0;
}

在这里插入图片描述

关注 “测试开发自动化” 公众号,获取更多学习内容

如果对您有帮助,关注+收藏!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值