SQLiteの超薄型ラッパ [プログラミング]
SQLiteをC++から使いやすくするためのラッパクラスを作ってみました。
後始末系の関数をデストラクタで呼ぶようにしたくらいの超薄型ラッパです。
高機能なのは各自で探してください(作っている人は結構いる)。
使い方
SQLite3::DBConnection conn(L"test.sqlite3"); if (!conn) { // DBのファイルにアクセスできないとか。 // ファイルがない時は、勝手に作る。 std::cout << conn.get_error_message() << "\n"; return; } // ----- 検索 ----- const wchar_t* sql = L"select ID, name from TABLE1 where ID=?;"; SQLite3::DBCommand cmd(conn, sql); if (!cmd) { // SQL が間違っているとか std::cout << cmd.get_error_message() << "\n"; return; } cmd.set_parameter(1, L"xxx"); // 最初のパラメータは「1」 SQLite3::DBCursor cursor(cmd); while (cursor.next()) { std::cout << cursor.get_text(0) // 最初のフィールドは「0」 << " , " << cursor.get_text(1) << "\n"; } // ----- 更新とか ----- // トランザクション開始 SQLite3::DBTransaction tran(conn); if (!tran) { std::cout << tran.get_error_message() << "\n"; return; } SQLite3::DBCommand cmd_del(conn, L"DELETE FROM TABLE1;"); if (!cmd_del.execute_non_query()) { std::cout << cmd_del.get_error_message() << "\n"; return; } // コミット tran.commit(); if (!tran) { std::cout << tran.get_error_message() << "\n"; return; }
SQLiteで日本語を扱うには、UTF-8かUTF-16にしなければいけなかったはずなので、UTF-16の方にしてみました。
今、上のサンプルを書いていて思ったのです。
エラーは例外を投げるようにした方が良かったなと。
今日の一冊 | |
|
2010-02-15 07:41
nice!(0)
コメント(0)
トラックバック(0)
コメント 0