夜行録 - 酔歩.net
SQLite プログラミング
SQLite を使うコードをちょっと書いてみている。
去年度の仕事のときにハマっていたことだが、そこでは一連の処理が延々続いていて、一見つぎつぎに stdin から吸って stdout に吐くので完結しそうでいて、それでいて微妙に、何段も前の処理に使ったパラメータを使い回さなきゃいけなかったりして、かといって複数の出力をうまいこと bundle する方法も思いつかず結局細かいことはノートに書いて、それを読みながら手入力で頑張っていたのだった。メンドくっさー
そのときに、ふと SQLite が使えるな、とは思ったのは、昔 web アプリをやっていた頃、解析のログを全部 DB に突っ込むというのをやっていたからで、この時は動くシステムは作らなかったが、結果とログと入力パラメータが全部 DB に入っているのは結構便利かも、という気がした。欲を言えばプログラム自体や読み込んでいるファイルの version control もやって、いつでも過去の結果が再現できるのが理想だが、そこまでのシステムはしんどいし。
当時は DB = oracle だったので、個人的にどうこうという展望はなかったけど、 SQLite なら standalone でやれるんだよね。ファイル消されたら死ぬけど。
という訳で、暇ができたのでちょっとコード書いてたんだが、ポピュラーなライブラリの割には日本語の情報をほとんど見かけないな
しばらく悩んだが、 SQL 文を作っておいて prepare して、パラメータのとこだけ bind で代入して step で回せばいいようだ。 insert しかしなかったので、それしか判らん。あ、 merge into って oracle にしかなかったのか
参考:
- SQLite バージョン 3 の C/C++ インターフェース - Third impact
- API の一覧。
- SQLite が認識する SQL - Third impact
- SQLite の SQL 文
- mac_prog: sqlite3_prepare の真価
- これを参考にした
- MASATOの開発日記: SQLite性能評価その3
- SQLiteで組み込みDB体験(2007年版):CodeZine
- 例題
- c/c++でsqliteを使う方法 - ぴょぴょぴょ? - Linuxとかプログラミング ...
とりあえず insert するコードはできた。C++ の自分用クラスにしといた。 select の方も作らんとな…。
Karma points: 0. Do you like this article? [yes/no]
- Use this Trackback URL for ping (right mouse click and copy URL).
- You can [print] this article, DISALLOWED (MailToAFriend) it, or export a [PDF].