DFU Query SQL

39. 作って理解する SQLストアド・プロシージャー (2)

i5.OS で提供されている ODBCドライバー

ストアド・プロシージャーが馴染み薄いものである理由のひとつには
OS内部だけでテストすることは難しいと思われていることである。
OS内部で ODBCクライアントを RPG などの既存の技術で作ることができないので
RPG や COBOL の技術者が開発できないものと思われていた。
ODBC のテストと言えば PCクライアントに別のアプリケーションを用意して
PC からのみアクセスするものと思われていたのである。
したがって、ストアド・プロシージャーも ODBC からしかアクセスできないものと思われていた。

しかし、実は通信のテストが内部通信でテストできるように、ODBC もまた
内部でテストできるように OS内部用の ODBCドライバーが System i には用意されているのである。
IBM も、もう少しこのことをわかりやすく解説していればストアド・プロシージャーも、
もう少し普及したに違いない。

さて、SQL によって扱われるデータ・ベースは System i の中では
「リレーショナル・データ・ベース」と呼ばれており、一般的なデータ・ベースとは別の扱いになっている。
コマンド入力画面において GO CMDRDB (RDB = Relational Data Base) と打鍵して
実行キーを押すと次のようなメニューが表示される。



このメニューのうちで「 5. RDB ディレクトリー項目の処理 (WRKRDBDIRE) 」を
選択すると次の画面のように ODBCドライバーが既に登録されていることがわかる。



このように、システム名と同じ名前の ODBCドライバーが、導入時にも既に導入されていることがわかる。
この ODBCドライバーを使うと内部処理として System i の中だけで ODBCドライバーによる
ストアド・プロシージャーのアクセスを行うことができる。
つまり、RPG や COBOL で ODBCアプリケーションを開発して、
この ODBCドライバー経由でストアド・プロシージャーにアクセスすることができるのである。
このことは、IBMマニュアルにもほとんど解説されていないので開発者には System i の内部だけで
ODBCアプリケーションをつくることはできないものと思われていたのである。

このシリーズでは、この ODBCドライバーを利用してストアド・プロシージャーにアクセスする手法を
紹介していく。