http://jp.rubyist.net/magazine/?0005-Win32OLE を参考にして、RubyからMDBの操作を試した。 その際、気づいたのだが、上のページのeach_recordの最初のif節が何かおかしいと思う。 self.MoveFirstより後にやるならまだしも、each_recordが現在参照中のレコード位置に依存する結果になってしまう。 (each_recordを二回続けて呼び出した際の動作が恐らく期待通りでない) が、何もないと、レコードが無い時とかINSERT文の後とかにエラーになるみたいなので、EOF or BOF でなく EOF and BOFとしたら良いかもしれない。 でも、Rubyの特異メソッドは面白いな、と思う。 それを使って、startADOを次のようにすると使いやすいと思う。 def startADO filename cn = WIN32