最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++?通過pqxxlib庫鏈接?PostgreSql數據庫的詳細過程

 更新時間:2023年04月03日 11:40:20   作者:book_longker  
這篇文章主要介紹了C++?通過pqxxlib庫鏈接?PostgreSql數據庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

C++ 通過pqxxlib庫鏈接 PostgreSql數據庫

一. 編譯pqxx(老版本)

1. libpqxx簡介

libpqxx是官方發(fā)布基于C++語言操作PostgreSQL的API庫,簡單地講就是用C++來操作PostgreSQL數據庫。

2. 編譯環(huán)境搭建

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
LIBPQDLL=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)系統(tǒng)中查找nmake.exe,拷貝下這個位置,我機器位置:D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\nmake.exe
(2)開始菜單,選擇對應的vs2019命令行并系統(tǒng)管理員身份運行

(3)cd進入到libpgxx根目錄下

f:
cd temp\libpqxx\

(4)執(zhí)行編譯命令格式

"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目錄,里面保存著靜態(tài)鏈接庫的debug/release及動態(tài)鏈接庫的debug/release文件。

二. 配置vc項目

Visual Studio的配置

1.在VS的工程屬性配置對話框中展開“VC++目錄”項。在“包含目錄”子項添加libpqxx根目錄下的include目錄,在“庫目錄”子項添加libpqxx根目錄下的lib目錄。

除了使用上述的絕對路徑以外,也可以通過環(huán)境變量進行設置,后者的方法較為靈活。方法是新建一環(huán)境變量“libpqxx”,變量值為libpqxx的根目錄,如下圖。然后就可以在上述的設置中用$(libpqxx)來表示這一路徑了。

2.在VS的工程屬性配置對話框中配置“鏈接器->輸入->附加依賴項”項,添加靜態(tài)庫,注意需針對Debug版本及Release版本分別添加。Debug版本添加的庫為libpqxxD.lib和libpq.lib;Release版本添加的庫為libpqxx.lib和libpq.lib。

3.將以下dll文件拷貝至工程的編譯輸出目錄,以供程序調用。
libpqxx根目錄的lib文件夾下的:
libpq.dll
libpqxx.dll
libpqxxD.dll

PostgreSQL安裝目錄的bin文件夾下的:
libcrypto-1_1.dll
libiconv-2.dll
libintl-8.dll
libssl-1_1.dll

4.在VC++工程的源文件中包含libpqxx的頭文件

#include <pqxx/pqxx>

三. 編譯pqxx(新版本)

需要用到的軟件和源碼

步驟如下:

  • 安裝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工程

修改為下面的配置:最新的語言標準.
修改pqxxALL_BUILD的屬性為

Make ALL_BUILD 在 INSTALL builds. Libpqxx must be installed in C:\Program Files\libpqxx

編譯好的文件

編譯好libpqxx, 哪我們就來使用它了,創(chuàng)建一個工程, 配置:附加包含目錄為: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安裝目錄下面找;

    如果在其他電腦運行時出現(xiàn)如下的情況,看不到錯誤提示:

    在資源管理器中選項里面把隱藏的東西都給取消掉,重啟,就能看到錯誤提示了

    到此這篇關于C++ 通過pqxxlib庫鏈接 PostgreSql數據庫的文章就介紹到這了,更多相關C++ PostgreSql數據庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

    相關文章

    • 使用C語言判斷棧的方向實例

      使用C語言判斷棧的方向實例

      下面小編就為大家?guī)硪黄褂肅語言判斷棧的方向實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
      2016-12-12
    • C語言實現(xiàn)修改文本文件中特定行的實現(xiàn)代碼

      C語言實現(xiàn)修改文本文件中特定行的實現(xiàn)代碼

      最近由于項目需要實現(xiàn)修改文件的功能,所以,博主認真查閱了一些資料,但是,很遺憾,并沒有太多的收獲
      2013-06-06
    • C語言關于二叉樹中堆的創(chuàng)建和使用整理

      C語言關于二叉樹中堆的創(chuàng)建和使用整理

      大家好,這里是針對二叉樹中堆結構的順序儲存,整理出來一篇博客供我們一起復習和學習,如果文章中有理解不當的地方,還希望朋友們在評論區(qū)指出,我們相互學習,共同進步
      2022-08-08
    • C++ namespace命名空間解析

      C++ namespace命名空間解析

      考慮一種情況,當我們有兩個同名的人,Zara,在同一個班里。當我們需要對它們進行區(qū)分我們必須使用一些額外的信息和它們的名字,比如它們生活在不同的區(qū)域或者興趣愛好什么的,在C++程序中也會遇到同樣的情況,所以命名空間就此產生
      2021-11-11
    • C++下標運算符[]重載代碼示例

      C++下標運算符[]重載代碼示例

      這篇文章主要給大家介紹了關于C++下標運算符[]重載的相關資料,C++ 規(guī)定下標運算符[]必須以成員函數的形式進行重載,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
      2024-01-01
    • 深入C++浮點數無效值定義與判定的解決辦法

      深入C++浮點數無效值定義與判定的解決辦法

      本篇文章是對C++中浮點數無效值定義與判定進行了介紹,需要的朋友參考下
      2013-05-05
    • C語言實現(xiàn)快速排序改進版

      C語言實現(xiàn)快速排序改進版

      這篇文章主要為大家詳細介紹了C語言實現(xiàn)快速排序的改進代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
      2018-08-08
    • C語言之沒有main函數的helloworld示例

      C語言之沒有main函數的helloworld示例

      這篇文章主要介紹了C語言之沒有main函數的helloworld示例,本文分解了帶main函數的helloworld示例,從而分析出不需要main函數的helloworld示例,需要的朋友可以參考下
      2015-03-03
    • Matlab實現(xiàn)繪制玫瑰線的示例代碼

      Matlab實現(xiàn)繪制玫瑰線的示例代碼

      這篇文章主要為大家介紹了如何利用Matlab繪制3好看的玫瑰線,文中的示例代碼講解詳細,對我們學習Matlab有一定幫助,感興趣的小伙伴可以動手試一試
      2022-08-08
    • C++11中std::future的具體使用方法

      C++11中std::future的具體使用方法

      這篇文章主要介紹了C++11中std::future的具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
      2020-01-01

    最新評論

    大港区| 乌鲁木齐县| 城口县| 偏关县| 泸西县| 申扎县| 高阳县| 灯塔市| 临沂市| 德格县| 佛学| 衡阳县| 平山县| 虎林市| 特克斯县| 嘉义县| 麻江县| 宽城| 吉木乃县| 德格县| 上栗县| 区。| 吴旗县| 二连浩特市| 大石桥市| 临潭县| 卢湾区| 环江| 苍溪县| 普陀区| 赣榆县| 威海市| 长沙县| 汤阴县| 日照市| 平舆县| 三亚市| 兴义市| 岐山县| 马龙县| 太康县|