[pgsql-jp: 35469] lobpqxxの使用方法
堀越 弘幸
horikosi @ tcs-ipnet.co.jp
2005年 6月 10日 (金) 10:55:45 JST
ホリエモンと申します。
C++にてPostgreSQLにアクセスするために、libpqxxクラス(2.5.3)を使用する
つもりでいますが、C++もPostgreSQLも初心者のため、基本的なDB操作方法(DB
コネクト、DML実行、トランザクション制御)の方法が分かりません。
サンプルソースや参考HPなどを参照していますが、ほぼ英語のものしかないため、
かなり苦戦しております(特にトランザクション制御について・・・)。
具体的には下記のようなソースをコンパイルして実行したところ、
Connected to test
Attempt to execute query in committed transaction<READ COMMITTED>
とプロンプトに出力されて終了してしまいます。このソースに何か足りない記述
があるのでしょうか?ちなみに、“W.commit();”の行をコメントアウトして実
行すると、検索結果と“ok.”が表示されて正常に終了します。
どなたか基本的なDB操作を実行する方法を知っている方がいらっしゃいましたら、
ご教授願います。
宜しくお願いします。
----------
#include <iostream>
#include <pqxx/pqxx>
#include <pqxx/connection>
using namespace std;
using namespace pqxx;
int main()
{
try
{
connection C("dbname=test user=xxxx password=xxxx");
cout << "Connected to test" << endl;
work W(C);
W.exec("INSERT INTO test(test) VALUES ('H')");
W.commit();
result R = W.exec("SELECT test FROM test");
cout << "Found " << R.size() << "data:" << endl;
for (result::const_iterator r = R.begin();
r != R.end();
++r)
{
cout << r[0].c_str() << endl;
}
cout << "ok." << endl;
}
catch (const exception &e)
{
cerr << e.what() << endl;
return 1;
}
return 0;
}
----------
pgsql-jp メーリングリストの案内