欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++?通過pqxxlib庫鏈接?PostgreSql數(shù)據(jù)庫的詳細(xì)過程

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

C++ 通過pqxxlib庫鏈接 PostgreSql數(shù)據(jù)庫

一. 編譯pqxx(老版本)

1. libpqxx簡介

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

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

2.1 PostgreSql下載安裝

我安裝PostgreSql路徑為D:\Program Files\PostgreSQL\14, 安裝路徑最好沒有空格,空格會使后面修改配置文件有點(diǎn)麻煩;要使用Dos格式的路徑,在這里我都花了些時間

2.2 libpqxx下載

直接從github下載libpqxx,我們使用的libpqxx6.4.7,下載命令如下:

git clone --branch 6.4.7 https://github.com/jtv/libpqxx.git

2.3 編譯前的準(zhǔn)備

修改配置文件

(1)下載下來的libpqxx壓縮包,在文件夾win32中common-sample,復(fù)制一份命名為common;
(2)使用記事本打開common文件,修改PGSQLSRC的值為PostgreSql安裝的根目錄(安裝路徑),比如我的電腦按默認(rèn)安裝是 D:\Program Files\PostgreSQL\14 , 修改為如下內(nèi)容:

(3)修改include相關(guān)配置

#LIBPQINC=$(PGSQLSRC)\interfaces\libpq
LIBPQINC=$(PGSQLSRC)\include

(4)修改Release相關(guān)配置

#LIBPQPATH=$(PGSQLSRC)\interfaces\libpq\Release
#LIBPQDLL=libpq.dll
#LIBPQLIB=libpqdll.lib

LIBPQPATH=$(PGSQLSRC)\lib
LIBPQDLL=libpq.dll
LIBPQLIB=libpq.lib

(5)修改Debug相關(guān)配置

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

(3)cd進(jìn)入到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)編譯成功后會產(chǎn)生一個lib目錄,里面保存著靜態(tài)鏈接庫的debug/release及動態(tài)鏈接庫的debug/release文件。

二. 配置vc項(xiàng)目

Visual Studio的配置

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

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

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

3.將以下dll文件拷貝至工程的編譯輸出目錄,以供程序調(diào)用。
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文件夾內(nèi)容如下:

運(yùn)行 Visual Studio 2019 打開build下面的libpqxx.sln工程

修改為下面的配置:最新的語言標(biāo)準(zhǔn).
修改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;附加依賴項(xiàng):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;
}

    運(yùn)行

    把程序放到其他電腦上運(yùn)行,需要用到的依賴文件有,可以到Postgresql安裝目錄下面找;

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

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

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

    相關(guān)文章

    最新評論