您好,登錄后才能下訂單哦!
在C++中,要實現PostgreSQL的異步查詢,可以使用libpqxx庫
sudo apt-get install libpqxx-dev
async_query.cpp
,并在其中包含以下代碼:#include <iostream>
#include <pqxx/pqxx>
#include <thread>
#include <future>
void async_query(const std::string &connection_string, const std::string &query) {
try {
// 連接到PostgreSQL數據庫
pqxx::connection conn(connection_string);
if (conn.is_open()) {
// 開始異步查詢
std::promise<pqxx::result> prom;
std::future<pqxx::result> fut = prom.get_future();
std::thread([&conn, &query, &prom]() {
try {
// 執行查詢
pqxx::nontransaction tx(conn);
pqxx::result result = tx.exec(query);
// 將結果存儲在promise中
prom.set_value(result);
} catch (const std::exception &e) {
// 如果發生異常,將異常信息存儲在promise中
prom.set_exception(std::current_exception());
}
}).detach();
// 在此處處理查詢結果,例如將其打印到控制臺
std::this_thread::sleep_for(std::chrono::seconds(1)); // 等待查詢完成
pqxx::result result = fut.get();
// 處理查詢結果
for (const auto &row : result) {
std::cout << row[0].c_str() << std::endl;
}
} else {
std::cerr << "Failed to open database connection." << std::endl;
}
} catch (const std::exception &e) {
std::cerr << "Error: " << e.what() << std::endl;
}
}
int main() {
std::string connection_string = "dbname=test user=postgres password=secret host=localhost port=5432";
std::string query = "SELECT * FROM your_table;";
async_query(connection_string, query);
return 0;
}
g++ async_query.cpp -o async_query -lpqxx -lpq
./async_query
這個示例展示了如何使用libpqxx庫在C++中執行異步查詢。請注意,這個示例僅用于演示目的,實際應用中可能需要根據需求進行調整。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。