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

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 【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;
}

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

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

文章知识点与官方知识档案匹配,可进一步学习相关知识


相关实践学习
函数计算X RDS PostgreSQL,基于LLM大语言模型构建AI知识库
基于ChatGLM6B 大语言模型构建AI知识库问答应用。答疑群17125058181
相关文章
|
30天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
108 4
|
4月前
|
编译器 开发工具 C++
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
1936 0
|
5月前
|
存储 分布式数据库 API
技术好文:VisualC++查看文件被哪个进程占用
技术好文:VisualC++查看文件被哪个进程占用
|
1月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
126 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
42 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
2月前
|
C++ 内存技术
[转]Visual C++内嵌swf文件并播放
[转]Visual C++内嵌swf文件并播放
|
3月前
|
安全 编译器 C++
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
这些是Microsoft Visual C++不同版本的Redistributable安装包,用于32位系统,确保相关应用正常运行。它们提供C++运行时环境,简化部署流程,支持第三方库及框架,并确保应用兼容性。定期更新可修复问题并引入新功能。在空间有限或需解决程序冲突时可考虑删除,但需谨慎操作以防影响应用稳定性和兼容性。删除前请确认无应用依赖,并通过控制面板安全卸载。
155 1
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
|
3月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
4月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
157 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
3月前
|
缓存 C++ Windows
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别