/COPY または /INCLUDE

/COPY 指示および /INCLUDE 指示は同じ目的と同じ構文を持ちますが、SQL プリコンパイラーによる処理が異なってきます。ユーザーのプログラムに組み込み SQL がない場合は、ユーザーはどちらの指示を使用するか自由に選択できます。ユーザーのプログラムに組み込み SQL がある場合は、どちらの指示を用いるべきかについて 組み込み SQL のあるソース・ファイルへの /COPY、/INCLUDE の使用を参照してください。

/COPY コンパイラー指示および /INCLUDE コンパイラー指示を使用すると、 これらのコンパイラー指示が出された時点で、 他のファイルからのレコードがコンパイル中のファイルに挿入されます。挿入されるファイルには、/COPY および /INCLUDE を含む有効な仕様であれば、COPYNEST キーワードによって指定されたネストの 最大の深さ (指定されていない場合は 32) まで、いかなる仕様が含まれていても差し支えありません。

/COPY ファイルおよび /INCLUDE ファイルは物理ファイルでも IFS ファイルでもかまいません。物理ファイルを指定するには、 /COPY ステートメントおよび /INCLUDE ステートメントを次の方法でコーディングします。

/COPY メンバーは、たとえその /COPY 指示が自由形式グループの中にコーディングされていても、デフォルトでは固定形式と見なされます。/COPY メンバーが自由形式仕様を含むことがわかっている場合は、それらを /FREE 指示および /END-FREE 指示で囲む必要があります。

ヒント

アプリケーションの維持を容易にするために、エクスポート・プロシージャーのプロトタイプを 別のソース・メンバーに入れることができます。これを行う場合には、そのメンバーのための /COPY 指示または /INCLUDE 指示を、エクスポート・プロシージャーが入っているモジュールと エクスポート・プロシージャーに対する呼び出しが入っているすべてのモジュールの両方に必ず入れてください。

図 3 は、/COPY 指示ステートメントおよび /INCLUDE 指示ステートメントの例をいくつか示しています。

図 3. /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 ソース・ファイルの使用について詳しくは、「WebSphere Development Studio: 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 
名前にブランクがあるファイルからコピーします。