/COPY or /INCLUDE

The /COPY and /INCLUDE directives have the same purpose and the same syntax, but are handled differently by the SQL precompiler. If your program does not have embedded SQL, you can freely choose which directive to use. If your program has embedded SQL, see Using /COPY, /INCLUDE in Source Files with Embedded SQL for information about which directive to use.

The /COPY and /INCLUDE compiler directives cause records from other files to be inserted, at the point where the directive occurs, with the file being compiled. The inserted files may contain any valid specification including /COPY and /INCLUDE up to the maximum nesting depth specified by the COPYNEST keyword (32 when not specified).

The following is a restriction on the implementation of the /COPY and /INCLUDE compiler directives when using the Program Verifier:

/COPY and /INCLUDE files can be either physical files or IFS files. To specify a physical file, code your /COPY and /INCLUDE statement in the following way :

/COPY members are considered fixed-form by default, even if the /COPY directive is coded within a free-form group. If the /COPY member will contain free-form specifications, these must be delimited with /FREE and /END-FREE directives.

TIP

To facilitate application maintenance, you may want to place the prototypes of exported procedures in a separate source member. If you do, be sure to place a /COPY or /INCLUDE directive for that member in both the module containing the exported procedure and any modules that contain calls to the exported procedure.

Figure 3 shows some examples of the /COPY and /INCLUDE directive statements.

Figure 3. Examples of the /COPY and /INCLUDE Compiler Directive Statements
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 
Copies from member MBR1 in source file QRPGLESRC. The current library list is used to search for file QRPGLESRC. If the file is not found in the library list, the search will proceed to the IFS, looking for file MBR1, MBR1.rpgle or MBR1.rpgleinc in the include search path. See the IBM Rational Development Studio for i: ILE RPG Programmer's Guide for information on using IFS source files.
 2 
Copies from member MBR2 in file SRCFIL. The current library list is used to search for file SRCFIL. Note that the comma is used to separate the file name from the member name. If the file is not found in the library list, the search will proceed to the IFS, looking for file SRCFIL, MBR1 in the include search path, possibly with the .rpgle or .rpgleinc suffixes.
 3 
Copies from member MBR3 in file SRCFIL in library SRCLIB or from the IFS file SRCFIL, MBR3 in directory SRCLIB.
 4 
Copies from member "MBR¬3" in file "SRC>3" in library "SRCLIB!"
 5 
Copies from the IFS file file.rpg in directory /dir1/dir2.
 6 
Copies from file, or file.rpgleinc or file.rpgle in directory /dir1/dir2
 7 
Copies from the IFS file file.rpg in directory dir1/dir2, searching for directory dir1/dir2 using the IFS search path.
 8 
Copies from a file whose name contains blanks.


[ Top of Page | Previous Page | Next Page | Contents | Index ]