2012年4月21日土曜日

[android]SQLiteの最大クエリー文字数

先日不具合が発生し、今日類似の確認中にちょっとマズいクエリーを発見!
マズいクエリーとは、こんなかんじ。

String sql = "update xxx set xxx_flg where " + "id='xxx' or " + ....

と文字列の連結(実際はStringBuiderですが)が続いていく。。。(そしてクエリーは手打ち)
過去の経験から、この手のクエリー長は一定の文字列数を超えると、クエリーのサイズを超えた的エラーが出るのがわかっている。
で、先方に知らせるかどうか悩んだ結果、とりあえず何文字までいけるのかを評価してみました。
とりあえず、実験したクエリー(ちょっと改変)
大体、8000文字くらいは大丈夫そう。ということで、先方には黙ってることにしました!

db.rawQuery("SELECT * FROM t_test WHERE insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time='' or insert_time=''",null);

0 件のコメント: