«前の日記(2002-03-04(Mon)) 最新 次の日記(2002-03-06(Wed))» 編集

これ日記なん?


2002-03-05(Tue) [長年日記]

_ Access再び

というわけでそういうお仕事が回ってきた。前回と違い、モジュールはぜんぜんない...というふれこみだったのだが、よくよくみるとフォームのとこでマクロつかったり、VBAつかったりとバラバラ。なんじゃこりゃ。

とりあえず画面起動が遅いのをどうにかしてくれ、ということだったが、クエリで全件読んでからローカルでフィルタしてるように見える。サブフォームと親フォームの連動でリンクを指定した場合って、動的にwhereを設定してrequery、なんかしないよね?全件読んでからfiltering,だろうな。filter設定かえるだけで済むんだもん。

いろいろ確かめたのだが、主キーを指定してないテーブルを開くときにみょーに遅い。件数は2000件もないのに、5000件近く返すクエリよりも体感が遅いみたい。これは定義変更だな。

でも、テーブル定義を変更となれば影響度チェックも当然やらなきゃなんないが...。テーブルってそれ以外のオブジェクトから参照されるからどれにどのテーブルが参照されてんのかチェックしないと。って、やっぱりツール作るしかないか。

_ Rubyでextend

クラスメソッドを外に切り出したかったのだが、moduleにしてから extend でいいらしい。こんな感じ
module Fuga
  def hore
     "hore!"
  end
end
class Hoge
  extend Fuga
end
p Hoge.hore # -> hore!
module内からextendするクラス内のクラス変数とかにアクセスしたい場合はこんな感じでいけそう。
module Fuga
  def retvar;  end  #空のメソッド
  def hore
    puts retvar
  end
end
class Hoge
  @@var = 'A'
  extend Fuga
  def Hoge.retvar
    @@var
  end
end
p Hoge.hore # -> A

_ Rubyでオブジェクト指向プログラミング

いままではどちらかというとclassとかも作らずにちょろっと書いては動かすようなのばかりだったのだけれど、苦しい場面に遭遇したので class ... end とかを使ってみたり。

何を書いたかというと汎用機の夜間バッチスケジューラの定義を引っこ抜いて、HTMLに変換というやつ。今までは正規表現で文字列を切り出してはHashに片っ端から放り込んで、と力まかせな方法だったのだけれど、今回はオブジェクトを作って、そのオブジェクト間の関連を相互に保持する形にし、中間結果はPStoreで保存、HTML化にはeRubyという構成。PStoreを使ったことで臨時作業(定義体から参照されるJCLが存在しているかのチェックとか)にも対応できて便利になった。

_ gVim6.0

を使ってみることにする。KaoriYaさんのところから。