0
私はC++ PostgreSQL libpqxxライブラリを使用しています。なぜトランザクション/非トランザクションオブジェクトを開くことができないのか分かりません。C++ pqxx作業トランザクションがクラッシュする
#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上でコンパイルしています)コンパイルに失敗しているが、次のように私のコードは、現在あります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>&)
次のエラーを与えますおそらく私は非常に明白な何かを見逃しているかもしれません。