/COPY 指示および /INCLUDE 指示は同じ目的と同じ構文を持ちますが、SQL プリコンパイラーによる処理が異なってきます。ユーザーのプログラムに組み込み SQL がない場合は、ユーザーはどちらの指示を使用するか自由に選択できます。ユーザーのプログラムに組み込み SQL がある場合は、どちらの指示を用いるべきかについて 組み込み SQL のあるソース・ファイルへの /COPY、/INCLUDE の使用を参照してください。
/COPY コンパイラー指示および /INCLUDE コンパイラー指示を使用すると、 これらのコンパイラー指示が出された時点で、 他のファイルからのレコードがコンパイル中のファイルに挿入されます。挿入されるファイルには、/COPY および /INCLUDE を含む有効な仕様であれば、COPYNEST キーワードによって指定されたネストの 最大の深さ (指定されていない場合は 32) まで、いかなる仕様が含まれていても差し支えありません。
/COPY ファイルおよび /INCLUDE ファイルは物理ファイルでも IFS ファイルでもかまいません。物理ファイルを指定するには、 /COPY ステートメントおよび /INCLUDE ステートメントを次の方法でコーディングします。
libraryname/filename,membername filename,membername membername
/COPY メンバーは、たとえその /COPY 指示が自由形式グループの中にコーディングされていても、デフォルトでは固定形式と見なされます。/COPY メンバーが自由形式仕様を含むことがわかっている場合は、それらを /FREE 指示および /END-FREE 指示で囲む必要があります。
アプリケーションの維持を容易にするために、エクスポート・プロシージャーのプロトタイプを 別のソース・メンバーに入れることができます。これを行う場合には、そのメンバーのための /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
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.