目录
- C++ 通过pqxxlib库链接 PostgreSQL数据库
- 一. 编译pqxx(老版本)
- 1. libpqxx简介
- 2. 编译环境搭建
- 2.1 PostgreSql下载安装
- 2.2 libpqxx下载
- 2.3 编译前的准备
- 3. 编译
- 二. 配置vc项目
- 三. 编译pqxx(新版本)
- 步骤如下:
C++ 通过pqxxlib库链接 PostgreSql数据库
一. 编译pqxx(老版本)
1. libpqxx简介
libpqxx是官方发布基于C++语言操作PostgreSQL的API库,简单地讲就是用C++来操作PostgreSQL数据库。
2. 编译环境搭建
2.1 PostgreSql下载安装
我安装PostgreSql
路径为D:\Program Files\PostgreSQL\14
, 安装路径最好没有空格,空格会使后面修改配置文件有点麻烦;要使用DOS格式的路径,在这里我都花了些时间
2.2 libpqxx下载
直接从github下载libpqxx,我们使用的libpqxx6.4.7,下载命令如下:
git clone --branch 6.4.7 https://github.com/jtv/libpqxx.git
2.3 编译前的准备
修改配置文件
(1)下载下来的libpqxx压缩包,在文件夹win32中common-sample,复制一份命名为common;
(2)使用记事本打开common文件,修改PGSQLSRC的值为PostgreSql安装的根目录(安装路径),比如我的电脑按默认安装是D:\Program Files\PostgreSQL\14
, 修改为如下内容:
(3)修改include相关配置
#LIBPQINC=$(PGSQLSRC)\interfaces\libpq LIBPQINC=$(PGSQLSRC)\include
(4)修改Release相关配置
#LIBPQPATH=$(PGSQLSRC)\interfaces\libpq\Release #LIBPQDLL=libpq.dll #LIBPQLIB=libpqdll.lib LIBPQPATH=$(PGSQLSRC)\lib LIBPQjavascriptDLL=libpq.dll LIBPQLIB=libpq.lib
(5)修改Debug相关配置
#LIBPQDPATH=$(PGSQLSRC)\interfaces\libpq\Debug #LIBPQDDLL=libpqd.dll #LIBPQDLIB=libpqddll.lib LIBPQDPATH=$(PGSQLSRC)\lib LIBPQDDLL=libpq.dll LIBPQDLIB=libpq.lib
头文件拷贝
将libpqxx\config\sample-headers\compiler\VisualStudio2013\pqxx\
目录下的所有头文件拷贝到libpqxx\include\pqxx
目录下编程客栈; 这里不管你安装的是vs 2017还是2019;都能成功
3. 编译
(1)系统中查找nmake.exe,拷贝下这个位置,我机器位置:D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\n开发者_Python开发make.exe
(3)cd进入到libpgxx根目录下
f: cd temp\libpqxx\
(4)执行编译命令格式
"D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\nmake.exe" /f win32/vc-libpqxx.mak ALL.
(5)编译成功后会产生一个lib目录,里面保存着静态链接库的debug/release及动态链接库的debug/release文件。
二. 配置vc项目
Visual Studio的配置
1.在VS的工程属性配置对话框中展开“VC++目录”项。在“包含目录”子项添加libpqxx根目录下的include目录,在“库目录”子项添加libpqxx根目录下的lib目录。
除了使用上述的绝对路径以外,也可以通过环境变量进行设置,后者的方法较为灵活。方法是新建一环境变量“libpqxx”,变量值为libpqxx的根目录,如下图。然后就可以在上述的设置中用$(libpqxx)来表示这一路径了。
2.在VS的工程属性配置对话框中配置“链接器->输入->附加依赖项”项,添加静态库,注意需针对Debug版本及Release版本分别添加。Debug版本添加的库为libpqxxD.lib和libpq.lib;Release版本添加的库为libpqxx.lib和libpq.lib。
3.将以下dll文件拷贝至工程的编译输出目录,以供程序调用。
libpqxx根目录的lib文件夹下的:libpq.dlllibpqxx.dlllibpqxxD.dllPostgreSQL安装目录的bin文件夹下的:
libcrypto-1_1.dlllibiconv-2.dlllibintl-8.dlllibssl-1_1.dll4.在VC++工程的源文件中包含libpqxx的头文件
#include <pqxx/pqxx>
三. 编译pqxx(新版本)
需要用到的软件和源码
编程客栈- CMake (cmake-gui), 下载最新和自己系统匹配的
- libpqxx
步骤如下:
- 安装
CMake-gui
; - 下载
libpqxx
git clone -b 7.4.1 https://github.com/jtv/libpqxx.git
使用cmake
编译 libpqxx
, 版本为: Visual Studio 2019 x64 Release
修改为下面图片,只保留了Release
,也可以编译Debug
,我是分开来编译的
最后build
文件夹内容如下:
运行 Visual Studio 2019
打开build
下面的libpqxx.sln
工程
修改为下面的配置:最新的语言标准.
修改pqxx
和ALL_BUILD
的属性为
Make ALL_BUILD 在 INSTALL builds. Libpqxx must be installed in C:\Program Files\libpqxx
编译好的文件
编译好libpqxx
, 哪我们就来使用它了,创建一个工程, 配置:附加包含目录为:C:\Program Files\libpqxx\include
; 附加库目录有2个:C:\Program Files\libpqxx\lib
,D:\Program Files\PostgreSQL\14\lib
;附加依赖项:libpq.lib;pqxx.lib;ws2_32.lib;wsock32.lib;
代码如下:
#pragma once #include <string> #include <IOStream> #include <pqxx/pqxx> int main() { std::string connectionString = "dbname=db_test user=admin password=123456 hostaddr=ip port=5433"; try { pqxx::connection connectionObject(connectionString.c_str()); pqxx::work worker(connectionObject); pqxx::result response = worker.exec("SELECT * FROM zd_users"); for (size_t i = 0; i < response.size(); i++) { std::cout << "Id: " << response[i][0] << " Username: " << response[i][1] << " Password: " << response[i][2] << " Email: " << response[i][3] << std::endl; } } catch (const std::exception& e) { std::cerr << e.what() << std::endl; } system("pause"); return 0; }
运行
把程序放到其他电脑上运行,需要用到的依赖文件有,可以到Postgresql
安装目录下面找;
如果在其他电脑运行时出现如下的情况,看不到错误提示:
在资源管理器中选项里面把隐藏的东西都给取消掉,重启,就能看到错误提示了
到此这篇关于C++ 通过pqxxlib库链接 PostgreSql数据库的文章就介绍到这了,更多javascript相关C++ PostgreSql数据库内容请搜索我们以前的文章或继续浏览下面的相http://www.devze.com关文章希望大家以后多多支持我们!
精彩评论