Headline About TechLog Download Java VBA Link

May 23, 2007.

鯖とプールとうまい棒カレー味


このサイトの開発はANHTTPD上で行なっています。win上で動くものがunix上で動く保証はないので、試しに本番サーバにupしてみようとして愕然。そもそもFTPに接続できません。友人のサーバを借りているのですが、プロバイダの都合で物理的にサーバが変更となった事があって...等々の兼ね合いでログインができなくなりました。慌てて友人にpassの初期化を要求。ついでに棚上げになりっぱなしのWのMLの修理もしたい所。

今日は仕事でVB + SQLServerアプリのバグ修正をやりました。昨日修正をかけたのは、条件を入力すると、DBにSQL発行して、結果をexcelに出力するという単純な画面。最近触りだしたばかりのアプリなのですが、とにかくコーディングが酷い。コンポーネント化ができて無いせいで、1つ直そうとすると修正箇所が4箇所とか。そもそもコードが長くて単純に読みづらいし。

最悪な点は通信と出力が切り分けられていない所。DBにSQLを発行したら、resultSetから1レコード取り出しては1レコードexcelに出力して、とやっているのです。これは2重の意味で鬼。出力している間、コネクションをcloseできないってのが1点目。プール使い切るってば。ストアドじゃ無いんだから検索結果でだらだらループ処理書くなってばよなぁ。excel出力関数は実行速度が遅いため、出力するデータのマトリックスをメモリ上に作ってからエリア指定で一気にコピーするのが定石。それを1行ずつやってるせいで、処理が死ぬほど遅く、結果コネクションcloseも死ぬほど待たされている、これが2点目。

一応情報系じゃない人への補足。例えばチャーハンの作り方を人に聞く際に、電話で聞きながら調理するのに等しい行為なのです。普通は調理法を電話で聞いてメモして、後で一気に調理しますよね。聞きながら料理されたら、教える方はたまったものじゃありません。まして、みじん切りが全部終わってから炒め始めればいいものを、玉ねぎ一枚みじん切り炒める、また一枚、炒める...海老切る炒める....とかやられた日にはぶち切れるでしょう。そういうプログラムが組んであったたのです。やれやれ。

で、まぁ、直している内容も陳腐。お金関係の帳票なのに、消費税をexcel上に計算式突っ込んで掛け算してたりsumしたりしてたんで、DB上別項目からセットするように変えただけ。え、excelで計算する事の危険性が想像つかない?消費税導入直後にbaristaのバイト先で、「うまい棒」を1本ずつ買ってた小学生に負けてますよ!大丈夫?まぁ、3本ずつで良かったわけですが。取り合えず、想像つかなかった人、baristaと100円ショップでもやりましょう。地味に儲けます。うふふ。

そうそう、今日は便利なSQLを覚えました。

COALESCE(MAX(PRICE), '0') AS SALES

のような表記です。え、知ってた?baristaはDB苦手なんで....。この、COALESCE、最初に見つかったnullでない値を返す、と言う物。NULLを0に置き換えるNVL代わりに使える。他にも、例えば顧客マスタから緊急連絡先リストを作成するときなど、

COALESCE(保守携帯TEL,携帯TEL,会社TEL,代表TEL,'未入力') AS 連絡先

なんて書けば、早くつながりそうな番号のリストが作成できる。うーん、便利。特に設計の悪いテーブルを検索するときなんかに便利(ぉ。唯一の欠点は、スペルがなんだか覚えにくい。発音も覚えにくくて「コゥあレス」って感じ。むぅ。

夕方ごろ友人よりpassの初期化完了の報告メール有り。これでuploadができるはず。ドメイン名維持関係で頼まれたことがあって、夕方より友人宅へ。その後インドカレー屋に行き、インドポップスや経営について語ったり。いつも尖っている人なので取り合えず安心。いや、丸くなるのは良いけど、直径が減るのはNGだと思うわけで。


名前: 意見: パス:

※パスにはこの日記のタイトルをコピペして下さい。


May, 2007
SUN MON TUS WED TUR FRI SAT
12345
6789101112
13141516171819
20212223242526
2728293031