SQLite を使うコードをちょっと書いてみている。
去年度の仕事のときにハマっていたことだが、そこでは一連の処理が延々続いていて、一見つぎつぎに stdin から吸って stdout に吐くので完結しそうでいて、それでいて微妙に、何段も前の処理に使ったパラメータを使い回さなきゃいけなかったりして、かといって複数の出力をうまいこと bundle する方法も思いつかず結局細かいことはノートに書いて、それを読みながら手入力で頑張っていたのだった。メンドくっさー
そのときに、ふと SQLite が使えるな、とは思ったのは、昔 web アプリをやっていた頃、解析のログを全部 DB に突っ込むというのをやっていたからで、この時は動くシステムは作らなかったが、結果とログと入力パラメータが全部 DB に入っているのは結構便利かも、という気がした。欲を言えばプログラム自体や読み込んでいるファイルの version control もやって、いつでも過去の結果が再現できるのが理想だが、そこまでのシステムはしんどいし。
当時は DB = oracle だったので、個人的にどうこうという展望はなかったけど、 SQLite なら standalone でやれるんだよね。ファイル消されたら死ぬけど。
という訳で、暇ができたのでちょっとコード書いてたんだが、ポピュラーなライブラリの割には日本語の情報をほとんど見かけないな
しばらく悩んだが、 SQL 文を作っておいて prepare して、パラメータのとこだけ bind で代入して step で回せばいいようだ。 insert しかしなかったので、それしか判らん。あ、 merge into って oracle にしかなかったのか
参考:
とりあえず insert するコードはできた。C++ の自分用クラスにしといた。 select の方も作らんとな…。