以前作ったTitaniumでSQLiteを簡単に扱うためのライブラリ(クエリビルダー)をバージョンアップした。
今回バージョンアップしたところは以下の2点。
・クオーテーションやダブルクオーテーションの処理(エスケープ処理)
・updateをする際のvalue値に0が入らない問題
ダウンロードはこちらから
ということで詳しくは下記に。
■クオーテーションやダブルクオーテーションの処理(エスケープ処理)
SQL文中に「'」や「"」が入っているとエラーが吐き出されてしまう問題を対処した。
ちなみに豆知識になるけど、SQLiteではダブルクオーテーションやシングルクオーテーションは2個重ねる必要があったりする。
//'aiueo'というのを探したい SELECT * FROM tbl WHERE name = "''aiueo''"; //"aiueo"というのを探したい SELECT * FROM tbl WHERE name="""aiueo""";
■updateをする際のvalue値に0が入らない問題
update文をsqliterで書くとなると下記のようになる。
//まとめて要素を挿入する場合 sqlite.open(function(db){ db.update("tbl").set({ name:"hoge", year:2000 }).where("id","=",1).execute(); }); //1つだけ要素を挿入する場合 sqlite.open(function(db){ db.update("tbl").value("flg",0).where("id","=",1).execute(); });で、削除機能を実装するといった場合には、論理削除と物理削除があるけれど、
基本的には論理削除を用いてやるのが妥当だったりする。
その際に0を挿入するわけなんだけど、この0が内部処理で入らなくなってしまっていた。
第二引数の_valueをチェックする部分で、!_valueとやっていたために、0が引っかかっていた。
なのでこちらの部分を_value == undefinedとして上げる事で解決。
自分で作っておきながら、これは中々便利なものであるので、しっかりとバージョンアップしていこうと思う。
まだ未実装だけど、「select_array」・「insertの第二引数を有効にする」・「updateとかでも返り値をちゃんと返す」などなど、
そういった諸々の機能を実装していきたいなと。
0 件のコメント:
コメントを投稿