ファイルに関連付けられる変数

ファイル仕様書のキーワードを使用して、複数の変数をファイルに関連付けることができます。 例えば、INFDS キーワードを使うと、ファイル情報データ構造がファイルに関連付けられます。 このデータ構造は、ファイル操作時に RPG によって、ファイルの現在の状態に関する情報を使用して更新されます。 SFILE キーワードを使用すると、記述するレコードの相対レコード番号に設定する数値変数が定義されます。

ファイルをパラメーターとして渡すと、呼び出し先プロシージャーのファイル・パラメーターが、呼び出し元プロシージャーで関連付けられているのと同じ物理変数に、継続的に関連付けられるようになります。 呼び出し先プロシージャーは、ファイル・パラメーターで関連付けられている変数にアクセスすることができます。 ただし、実際にアクセスできるのは RPG コンパイラーのみになります。 これによって、呼び出し先プロシージャーがファイル・パラメーターに関する操作を実行した時に、関連付けられている変数を RPG コンパイラーで処理できるようになります。 ファイル・パラメーターに対するファイル操作で、関連付けられている変数の値が必要になる場合には、関連付けられている変数の現行値が使用されます。 ファイル・パラメーターに対するファイル操作によって、関連付けられている変数の内容が変更されると、新しい値によって、関連付けられている変数がただちに更新されます。 ファイル・パラメーターを渡しても、関連付けられている変数に対して、呼び出し先プロシージャーが直接アクセスできるようにはなりません。 関連付けられている変数に呼び出し先プロシージャーがアクセスできるのは、その変数がグローバル変数である場合や、追加パラメーターとして呼び出し先プロシージャーに変数が渡されている場合のみです。

ヒント: ファイル・パラメーターを別のプロシージャーに渡して、関連付けられている変数にそのプロシージャーがアクセスできるようにする必要がある場合には、関連付けられている変数ごとにサブフィールドを指定してデータ構造を定義し、そのデータ構造を追加パラメーターとしてプロシージャーに渡します。 図 1を参照してください。以下の表は、変数をファイルに関連付けるために使用できるキーワードの一覧です。
表 1. ファイル仕様書のキーワード (変数の関連付け用)
キーワード 使用法 説明
COMMIT 入力 コミットメント制御のためにファイルをオープンするかどうかを指示する際に、RPG プログラマーが設定します。
DEVID 入力/フィードバック 特定のデバイスに対するファイル操作を指示する際に、RPG プログラマーが設定します。 直前のファイル操作で使用されたデバイスを示す際に、RPG コンパイラーが設定します。
EXTFILE 入力 オープンする外部ファイルを指示する際に、RPG プログラマーが設定します。
EXTIND 入力 ファイルを使用するかどうかを制御する際に、プログラムが呼び出される前にアプリケーション開発者が設定します。
EXTMBR 入力 オープンする外部メンバーを指示する際に、RPG プログラマーが設定します。
INDDS 入出力 (Input/Output) ファイル操作で使用される出力可能標識の設定を、RPG プログラマーが行います。 入力可能標識の設定を、システムが操作時に行います。
INFDS 入力 ファイルの現在の状態を表す際に、RPG コンパイラーが設定します。
PRTCTL 入力/フィードバック 印刷装置ファイルを制御する際に、RPG プログラマーがスペースおよびスキップ・フィールドを設定します。
RECNO 入力/フィードバック 印刷装置ファイルの現在行を示す際に、RPG コンパイラーが設定します。
SAVEDS 任意 サブファイル・レコードに書き込まれる相対レコード番号を示す際に、RPG プログラマーが設定します。
SFILE 入力/フィードバック 入力操作によってサブファイル・コードに取り出された相対レコード番号を示す際に、RPG コンパイラーが設定します。
SLN 入力 表示装置ファイルのレコード形式の開始行を示す際に、RPG プログラマーが設定します。