まずはExcelVBAを使ってODBC経由で汎用機のデータベースにつながるかの実験である。

まずSelect文を投げる実験をしてみたが、意外なほどあっさりとつながり、拍子抜けした。しかし、この簡単さとは裏腹に、いくつかのトラブルに遭遇する事になった。


実験時のトラブルをいくつか挙げる。

まず、文字が化けてしまう事。Windowsのデータベースではそういうことはなかったので躓いた。汎用機との文字コードとの違いは重々理解していたつもりだ。問題はどこで文字コードを変換しているか、だ。通常、PCで汎用機の画面を表示させる際のコード変換はエミュレータで行う。データを転送する際もエミュレータ経由であるから、そこでまかなうはず。
データベース接続の場合なら、エミュレータかODBCドライバとが思い当たった。その少し前にエミュレータの文字コード変更があったこともあり、そのときの感覚からしてエミュレータではないのでは?ということでODBCから確認することにした。すると、DB2のODBCには結構詳細な設定項目があった。この設定を調整する事で文字化けは解消した。

次に、負荷の問題。知らなかったが、どうやらデータベースアクセスは汎用機上でかなり優先度が高い処理として扱われるようだった。そのため、データベースをJoinした場合、かなり高負荷がかかり、汎用機をフリーズさせるような事態を引き起こしてしまった。上司は本来始末書モノだったそうだが、たまたまゴールデンウィークの間で、利用者が少なかったのでお咎めなしとなったそうだ。
これにより、汎用機とPC間のデータの転送量を減らす事よりも、汎用機上の処理負荷を下げてPC上で加工するように設計変更を行うことにした。


実験段階を経て、本格的に作成することになった。
さて、そのツールとやらの話を聞きにいく事にした。そのツールを使っているというのが現場で人気のお姉さんだったので、関係のないリーダーまで出しゃばってきて話を聞く事になった。

そのお姉さん曰く「べつに特別なことはいらない」ということでそのツールを操作してもらった。確かに何事もなく動く。つながる事は分かった。何のノウハウもない。それでは役に立たない。

困って「どういう設定をすればいいか」をデータベースチームに相談したら相談先を紹介された。紹介された先は汎用機側の運用や設定をしているチームだ。
コンタクトを取ると、「そういう要望、なかなかこないなと待っていた」という話から始まり、設定方法の情報を懇切丁寧に教えてくれた。

これで、その設定を使ってVBAから汎用機のDBにアクセスできるか、を試してうまくいけば使える。当時はVBAでそういうことの実績がインターネット上でも報告がなかったので、もしかすると日本でも初めてのケースかもしれない。

実験好きの立場としては腕が鳴った。

某金融機関の開発基盤整備ということをやっていたときの話。

IBMの汎用機で、REXXやCOBOLでツールを作ったり、データをPC側に落として加工するような処理などを手がけていた。
その中で「毎年データベースのテーブル定義書を納品しているが、その作業に毎回1ヶ月半ほどかかっており、さらに会議室をひとつ占有するので、何とかならないか」という話が持ち上がった。


要望としては、なるだけ手作業は避けたい、納品は印刷して行うのでファイル形式は何でもよい、とのことであった。


IBMのDB2の仕様で、どのテーブルにテーブル定義が入っているかは分かっていた。これをCSV等に抜き出して、PC側に落としてExcelのフォーマットに加工する、というくらいならそう難しくない。しかし、やるならもっと手作業の介在を減らしたい。そう、ツールの画面からワンタッチでCSVを作ってダウンロードして、加工して、という一連の操作をすることで手作業を極力減らせないかと周囲に相談してみた。

するとデータベース周りを担当してるチームから
・汎用機のデータ取得はPC側から直接可能である。
・PCから汎用機のDB直接アクセスできるツールもある。
という情報を耳にした。