SSブログ

SQLiteの超薄型ラッパ [プログラミング]

SQLiteをC++から使いやすくするためのラッパクラスを作ってみました。

後始末系の関数をデストラクタで呼ぶようにしたくらいの超薄型ラッパです。
高機能なのは各自で探してください(作っている人は結構いる)


ダウンロード(6kb)

使い方

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の方にしてみました。


今、上のサンプルを書いていて思ったのです。
エラーは例外を投げるようにした方が良かったなと。

[車(セダン)] 今日の一冊
フェルメールの暗号

フェルメールの暗号

  • 作者: ブルー バリエット
  • 出版社/メーカー: ソニーマガジンズ
  • 発売日: 2005/08
  • メディア: 単行本

タグ:C++ SQLite
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。