libpqxx(PostgreSQLのC++用ライブラリ)を使ったメモ

PostgreSQLのC言語用ライブラリはlibpqで、C++用のライブラリはPostgreSQL7.3からlibpqxx、それ以前はlibpq++という名前だったようです。libpqは割とドキュメントやサンプルが豊富ですが、libpqxxはPostgreSQLのドキュメントからは分離しておりサンプルが少なかったので使ったときのメモ。

ダウンロードはlibpqxxのサイトから。インストールは解凍して./configure, make, make installで問題なし。PostgreSQLは8.1.4、libpqxxは2.6.8。

libpqxxのチュートリアルには動くコードが見当たらず、ソースの中のtest/test000.cxxなどがサンプルになる。
コンパイルがそのままでは通らなかったので以下のコマンドを打つことになりました。

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ pkg-config --libs libpqxx

コンパイルは以下のように。

$ g++ -Wall test.cpp -lpqxx -lpq

test.cppの中身。

#include <iostream>
#include <pqxx/pqxx>
using namespace std;
using namespace pqxx;
int main()
{
    try {
        connection Conn("dbname=test");
        work T(Conn);
        result R(T.exec("select * from test"));
        for (result::const_iterator c = R.begin(); c != R.end(); ++c) {
            cout << c[0].as(string()) << endl;
        }
        T.commit();
        Conn.disconnect();
    } catch (const exception &e) {
        cerr << e.what() << endl;
        return 1;
    }
    return 0;
}
This entry was posted in いじる. Bookmark the permalink. Both comments and trackbacks are currently closed.

Page optimized by WP Minify WordPress Plugin