大事なこと
とりあえず, ofxSQLite使わない様にしましょう. ややこしいことになるだけなのでフォークするのもやめましょう.
あと, ofxSQLite is dead. とかdisってるように映りかねない書き方してますが, roxluをdisりたいわけでは無いです. これ大事. roxluはカッコイイです.
ofxSQLiteCppを使いましょう.
why?
ofxSQLite 使ってみたけどかなりイケてない.
sqlite3のバージョンも古いままだし, ofxSQLiteSimpler.h/.cppとかいうわけわかんない動かないソース混ざってるし, 頑張って使えってもメモリリークするって話だし, OUTER JOIN使えないし, WHERE句で <
とか >
を使おうとしてもよく分からないし(これに関しては僕の書き方が悪いのかもしれないけど, 少なくともソースのコメントに書いてある様にはやってみた).
で, 無茶フォークされてて誰もPR投げてないなんて...!とか思ったらbakercpが去年くらいにPR投げてる(他にも修正PR投げてる人は多数居る)んだけどroxluが受け入れてない.
ということで, ofxSQLiteはbakercp版を使いましょう. と思ったらbakercpがofxSQLite使うな, ofxSQLiteCpp使えってさ.
ofxSQLiteCpp?
このofxSQLiteCpp, 別にofxSQLiteCppってクラスがあるわけじゃないんだけどSQLiteCppってライブラリがサクッと導入出来てbakercpがそれの使い方のexample書いてくれてるので親切. それはaddonなのかどうかって話もあるけど, まあ, サクッと使えるようになってるし, 無駄にラップしてリークしてもしゃーないし現状としては最高.
どうせofxSQLiteみたいに
db->select("data1, data2, data3").from("table_name").when("x", 4).execute();
みたいにメソッドチェーンみたいな書き方出来ても結局生のDBクエリが分かってないと使えないわけだしね. (ちゃんと出来たらかっこいいのかもしれないけど)
それではみなさんもう一度ご唱和ください
#ofxSQLiteCppを使いましょう.
はい
ということでofxSQLiteを使おうとしてハマる人が出ないことを祈ってこの記事を書きました.
ofxSQLite is dead. とかdisってるように映りかねない書き方してますが, roxluを責めたいわけじゃないってことだけもう一度最後にきちんと記しておきます.