RPG

137. ライブラリー・リストに存在しないファイルを暗黙オープンするには

例えば RPG-CGI では、どの子プロセス上で CGI が実行されるか不明であるので

対話式プログラムとは違って、ライブラリー・リストに依存してファイルを暗黙的に

オープンすることができない。

このため RPG自身の中で、OVRDBF を直接、行ってから OPEN命令によってファイルを

明示的にオープンして使用後に, DLTOVR してから CLOSE命令を実行するという面倒な

作業が必要であった。明示的なファイル・オープンは暗黙的なファイル・オープンに比べて

オーバー・ヘッドも生じる。

V5R1M0 で追加されたファイル仕様書の EXTFILE キーワードを使用すれば、

ライブラリー・リストに存在していないファイルであっても、ライブラリーを指定して

暗黙的なファイル・オープンが可能となる。

【 例 】
FSHOHIN    IF   E           K DISK    EXTFILE(SHOHIN_LIB)
   :
   :
D SHOHIN_LIB      S             21    INZ('QTRFIL/SHOHIN')
【 解説 】

この例では、実行時に、ファイル : SHOHIN がライブラリー・リストに存在していなくても

ライブラリー: QTRFILファイル : SHOHIN が、プログラム起動時に暗黙的にオープンされる。

D SHOHIN_LIB      S             21    INZ('SHOHIN')

のようにライブラリーを指定しないのであれば、 *LIBL によって SHOHIN が検索される。

このように EXTFILE キーワードは CGI 開発に有効であるが、コンパイル時には

そのファイルはライブラリー・リスト上に存在していなければならない。