簡體   English   中英

C ++ pqxx工作事務崩潰

[英]C++ pqxx work transaction crashing

我正在使用c ++ PostgreSQL libpqxx庫,但不確定為什么不能打開事務/非事務對象。

我的代碼當前如下

#include <iostream>
#include <pqxx/pqxx>

using namespace std;
using namespace pqxx;

int main() {

   // define variables
   string params;
   connection* pgsql;
   string sql;

   // db connection parameters
   params = "dbname=dummy user=postgres password=postgres hostaddr=10.10.0.2 port=5431";

   try {
      // make connection
      pgsql = new connection(params);
   } catch(const exception &log) {
      // connection failed
      cerr << log.what() << endl;
   }

   // prepare sql
   sql = " select * from categories where cat_idno = $1 ";
   pgsql->prepare("categories", sql)("integer");

   // execute transaction
   // this bit doesn't work
   work tr(pgsql);
   result row = tr.prepared("categories")(1).exec();
   tr.commit();

   // disconnect
   pgsql->disconnect();

}

它可以很好地連接數據庫,並可以很好地准備我的sql,但編譯失敗(我在CentOS 5 btw上進行編譯)

g++ -o ./pgsqltest ./pgsqltest02.cpp -lpqxx

給我以下錯誤

./pgsqltest02.cpp: In function ‘int main()’:
./pgsqltest02.cpp:24: error: no matching function for call to ‘pqxx::transaction<read_committed, read_write>::transaction(pqxx::connection*&)’
/usr/include/pqxx/transaction.hxx:102: note: candidates are: pqxx::transaction<ISOLATIONLEVEL, READWRITE>::transaction(pqxx::connection_base&) [with pqxx::isolation_level ISOLATIONLEVEL = read_committed, pqxx::readwrite_policy READWRITE = read_write]
/usr/include/pqxx/transaction.hxx:97: note: pqxx::transaction<ISOLATIONLEVEL, READWRITE>::transaction(pqxx::connection_base&, const std::string&) [with pqxx::isolation_level ISOLATIONLEVEL = read_committed, pqxx::readwrite_policy READWRITE = read_write]
/usr/include/pqxx/transaction.hxx:87: note: pqxx::transaction<read_committed, read_write>::transaction(const pqxx::transaction<read_committed, read_write>&)

我不確定為什么會這樣,也許我錯過了一些非常明顯的東西

該錯誤與compile命令有關,它需要其他指向libpqxx標頭和二進制文件的參數。 正確的編譯命令是

g++ -o ./pgsqltest ./pgsqltest02.cpp -I /opt/libpqxx/include -L /opt/libpqxx/lib -lpq -lpqxx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM