/COPY 指示および /INCLUDE 指示は同じ目的と同じ構文を持ちますが、SQL
プリコンパイラーによる処理が異なってきます。ユーザーのプログラムに組み込み SQL
がない場合は、ユーザーはどちらの指示を使用するか自由に選択できます。ユーザーのプログラムに組み込み
SQL がある場合は、どちらの指示を用いるべきかについて
組み込み SQL のあるソース・ファイルへの /COPY、/INCLUDE の使用を参照してください。
/COPY コンパイラー指示および /INCLUDE コンパイラー指示を使用すると、
これらのコンパイラー指示が出された時点で、
他のファイルからのレコードがコンパイル中のファイルに挿入されます。挿入されるファイルには、/COPY
および /INCLUDE を含む有効な仕様であれば、COPYNEST キーワードによって指定されたネストの
最大の深さ (指定されていない場合は 32) まで、いかなる仕様が含まれていても差し支えありません。
次に示すのは、Program Verifier を使用する場合における、/COPY コンパイラー指示および
/INCLUDE コンパイラー指示の制約事項です。
- メイン・ソース・メンバーの /COPY または /INCLUDE は許されません。これは、/COPY
ファイルまたは /INCLUDE
ファイルをオープンできないことを示すエラー・メッセージを招きます。
/COPY ファイルおよび /INCLUDE ファイルは物理ファイルでも IFS ファイルでもかまいません。物理ファイルを指定するには、
/COPY ステートメントおよび /INCLUDE ステートメントを次の方法でコーディングします。
ヒント:
アプリケーションの維持を容易にするために、エクスポート・プロシージャーのプロトタイプを
別のソース・メンバーに入れることができます。これを行う場合には、そのメンバーのための
⁄COPY 指示または ⁄INCLUDE 指示を、エクスポート・プロシージャーが入っているモジュールと
エクスポート・プロシージャーに対する呼び出しが入っているすべてのモジュールの両方に必ず入れてください。
図 1 は、/COPY 指示ステートメントおよび /INCLUDE
指示ステートメントの例をいくつか示しています。
図 1. /COPY コンパイラー指示ステートメントおよび /INCLUDE コンパイラー指示ステートメントの例C/COPY MBR1 1
I/INCLUDE SRCFIL,MBR2 2
O/COPY SRCLIB/SRCFIL,MBR3 3
O/INCLUDE "SRCLIB!"/"SRC>3","MBR¬3" 4
O/COPY /dir1/dir2/file.rpg 5
O/COPY /dir1/dir2/file 6
O/COPY dir1/dir2/file.rpg 7
O/COPY "ifs file containing blanks" 8
O/COPY 'ifs file containing blanks' 8
- 1
- ソース・ファイル QRPGLESRC のメンバー MBR1 からコピーします。ファイル QRPGLESRC を検索するために現行ライブラリー・リストが使用されます。ファイルがライブラリー・リストで見付からない場合、
検索は IFS に進み、ファイル MBR1、MBR1.rpgle、または MBR1.rpgleinc をインクルード・サーチ・パスから検索します。IFS ソース・ファイルの使用について詳しくは、「Rational Development Studio for i ILE RPG プログラマーの手引き」を参照してください。
- 2
- ファイル SRCFIL のメンバー MBR2 からコピーします。 ファイル SRCFIL を検索するために現行ライブラリー・リストが使用
されます。 ファイル名とメンバー名を区切るためにコンマが使用されることに注意
してください。ファイルがライブラリー・リストで見付からない場合、検索は IFS に進み、ファイル SRCFIL, MBR 1 (.rpgle または .rpgleinc 接尾部が付いている可能性があります) をインクルード・サーチ・
パスから検索します。
- 3
- ライブラリー SRCLIB にある SRCFIL ファイルのメンバー MBR3 またはディレクトリー SRCLIB にある IFS ファイル SRCFIL, MBR3 からコピーしま
す。
- 4
- ライブラリー "SRCLIB!" にあるファイル "SRC>3" のメンバー "MBR¬3" から
コピーします。
- 5
- ディレクトリー /dir1/dir2 にある IFS ファイル file.rpg からコピーします。
- 6
- ディレクトリー /dir1/dir2 にあるファイル、file.rpgleinc、または file.rpgle からコピーします。
- 7
- IFS サーチ・パスを使用して、ディレクトリー dir1/dir2 を検索し、ディレクトリー dir1/dir2 にある IFS ファイル file.rpg からコピーします。
- 8
- 名前にブランクがあるファイルからコピーします。