2011年02月09日

ドミノ倒しのように!

やれやれ。
ホントにもう半分諦めているような感じですが、前回のエントリーを書いたのちも一カ所修正したら、まるでドミノ倒しのごとくに次々とおかしくなり、ようやく「直った!」と思って翌日動かしてみると別の部分に不具合が出るといったことを繰り返してました。

それというのも、またもSQLについての認識も甘かったことから来ている訳ですが、これに関しては最初から大丈夫だろうかとうすうす心配していたのが表面化した結果でした。

当初データのないカラムは使用しない予定だったのですが、(最終)テストで誤動作が出た結果レコードの判定に必要になった(気がした)のです。

SQLiteでデータのないカラムを調べるには「カラム名 = ""」などではなく、「カラム名 is null」だとのことで、これを複数ある判定箇所に設定するだけでもう訳が分からなくなりました。
そもそも、劣悪なPC環境であることもありますが、for文で複数カラムの抽出条件を生成するSQL文がどのように構成されたか見るのが面倒。
頻繁に文字列連結する場合文字列を+でつなげるよりStringBufferが、StringBufferよりStringBuilderの方が速いらしいのですが、StringBuilderだと余計見づらいので、SQL文をLogで出力するのですが、エミュレータはエラーで起動できない方が多いし、実機を繋いでいても何故かLogがはき出されないことがしばしば。
それにデータベースの状態をeclipseから直接閲覧できれば良いのですが、Androidはできない(んですよね?)のが残念。
ファイル・エクスプローラーからPullしようとしても、これも良く失敗するので、イライラの原因に。

四苦八苦しながら、データ一覧のSQL文を直したと思ったら今度は重複判定のSQLがおかしくなり、重複判定を直したら、データ追加が、追加を直したら編集が……と無間地獄のよう。
賽の河原じゃあるまいし、何度直せば良いのだ!とホトホト嫌になり、いまはようやく動いたかのように見えますが、きっとどこかに罠があるに違いないと思うと、やはり公開する自信がなくなるのでした。

マーケットで公開せず、自分のWebとかで公開して野良アプリとして……などという考えも浮かばないではありませんが、このブログからして定期的に見ている人は(不思議にもブックマークから来ている?方がいますが)ほとんどいないはずなので、意味がない。
そもそも、このブログは誰かに見られることを前提としていませんからね。

……そういえば、見ている方がいても「こいつ、ホントにバッカだなあ」と優越感に浸るために見ているのでしょうから、ここで迂闊にあまり為になる可能性のあることを書いてはいけないな、と思いました。
たまに、うまくいったことを書いているのが他の人の参考になるかどうかはさっぱり分かりませんが、万が一検索で上位に表示されたりしたら、(王様の耳がロバの耳であることがバレて)「捕らえられて死刑になってしまう!」(笑)。

話が逸れましたが、SQLなどを一カ所で集中管理できれば良いのですが、AlertDialogの時の失敗で痛い目を見ているし、そもそも何故メソッドに分かれているか、という前提を覆すことにもなるので、ちまちまと直すしかないのでしょうか?
でも、あまりにもセンシティブになりすぎて、今回のように脆さを痛感することになるので、今現在正しく動くようになったように見えますが(明日はまた不具合が見つかるかも)、本当はなんとかしなければいけないんでしょうねえ。
それに動けば良いというものでもなく、シンプルに美しく、合理的でないと良いコードとは言えないのでしょうけど、このままでは本当に公開できそうにありません。はぁ……

posted by 白虹 at 00:43| Comment(0) | TrackBack(0) | Android開発