先日不具合が発生し、今日類似の確認中にちょっとマズいクエリーを発見!
マズいクエリーとは、こんなかんじ。
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);
GDDとは「Gut's Driven Development」の略です。簡単にいうとガッツ駆動方式のシステム開発です。
えぇまぁ、私の開発スタイルです。このBlogでは、そんなシステム開発の作業で発見したことを記録していきます。
(Google Developer Daysとはなんの関係ありません。)
2012年4月21日土曜日
2012年4月11日水曜日
[android]ADT18きてた
今日、ADT18がリリースされたようです。ADT17を評価する暇が無かった。。。
ちなみにADT17では、GUIのxml編集するときに、なんか文字化けしてたのと、よくわからないビルドエラーが出ました。
アレは直ったんだろうか・・・。
2012年4月10日火曜日
[Android]Galaxy Nexusをタブレットぽくつかう (2)
先日、GDD Blog: [Android]Galaxy Nexusをタブレットぽくつかうというねたを書きました。
結果的に、AOKP(Android Open Kang Project)というカスタムROMを入れることで、簡単に実現できるということがわかりました。
導入後、AOKPの設定画面より160DPIに変更することで、タブレットモードに切り替わります、LCD Density Modderなどで解像度を変更しても同じ効果が得られます。
解像度によっては、エラーが出ます。そこでAOKPを入れると最初から入っているNova LauncherをHOMEアプリに変更します。
この、Nova LauncherというHOMEアプリすごくよくできていて、解像度にあわせてドロアーのアイコンの表示数を最適化。HOMEスクリーン側もアイコンの個数などしてできます。標準がベースらしいですし、使い勝手もよいのでコレお勧めです。
※カスタムROMを入れるにはブートローダーのアンロックなど、保障が受けられなくなる行為を必要としますので、適応には十分注意して下さい。
結果的に、AOKP(Android Open Kang Project)というカスタムROMを入れることで、簡単に実現できるということがわかりました。
導入後、AOKPの設定画面より160DPIに変更することで、タブレットモードに切り替わります、LCD Density Modderなどで解像度を変更しても同じ効果が得られます。
解像度によっては、エラーが出ます。そこでAOKPを入れると最初から入っているNova LauncherをHOMEアプリに変更します。
この、Nova LauncherというHOMEアプリすごくよくできていて、解像度にあわせてドロアーのアイコンの表示数を最適化。HOMEスクリーン側もアイコンの個数などしてできます。標準がベースらしいですし、使い勝手もよいのでコレお勧めです。
※カスタムROMを入れるにはブートローダーのアンロックなど、保障が受けられなくなる行為を必要としますので、適応には十分注意して下さい。
2012年4月6日金曜日
[Android]Support Package V7?
ViewPagerの情報を集めるためにネットを検索していると、android.support.v7.widget.GridLayoutっていうキーワードが何かヒットしました。
「あぁ4.0のGridLayoutね」と思ったんですが、よくみると、パッケージ名がアレになってる!
で、[SDKのフォルダ]/extras/android/supportをみると、v7フォルダがあり、その中にそれらしいJarが!
jarの中を除くと、GridLayout系のclassファイルが入っていました。
で、readmeをよんでみると、
Library Project including GridLayout.
This can be used by an Android project to provide
access to GridLayout on applications running on API 7+
ってあります。直訳すると、
「GridLayoutのを含むライブラリプロジェクト。
これが提供するAndroidプロジェクトで使用することができ
API7で実行するアプリケーションでグリッドレイアウトにアクセス+」
つまり、API7(2.1以上)でGridLayoutが使える。このフォルダがライブラリプロジェクトで構成されるので、参照しろ。ということでしょうか。
「あぁ4.0のGridLayoutね」と思ったんですが、よくみると、パッケージ名がアレになってる!
で、[SDKのフォルダ]/extras/android/supportをみると、v7フォルダがあり、その中にそれらしいJarが!
jarの中を除くと、GridLayout系のclassファイルが入っていました。
で、readmeをよんでみると、
Library Project including GridLayout.
This can be used by an Android project to provide
access to GridLayout on applications running on API 7+
ってあります。直訳すると、
「GridLayoutのを含むライブラリプロジェクト。
これが提供するAndroidプロジェクトで使用することができ
API7で実行するアプリケーションでグリッドレイアウトにアクセス+」
つまり、API7(2.1以上)でGridLayoutが使える。このフォルダがライブラリプロジェクトで構成されるので、参照しろ。ということでしょうか。
[他]WifiNotifyをバージョンアップしました
半年ほど前にリリースしましたAndroidアプリWifi Notifyですが、バージョンアップしてICS対応しました。
その他としましては、通知の情報にIPアドレスを表示するようにしました。
3GよりWiFiメインで利用するかは、一度お試しを。
その他としましては、通知の情報にIPアドレスを表示するようにしました。
3GよりWiFiメインで利用するかは、一度お試しを。
登録:
投稿 (Atom)