HANDLER キーワードは、ファイルがオープン・アクセス・ファイルであることを示します。 装置が DISK、PRINTER、SEQ、または WORKSTN のファイルに対して指定できます。
最初のパラメーターは、ファイルに対する入力命令および出力命令を処理する プログラムまたはプロシージャーを指定します。次のように指定できます。
'MYPGM'
'*LIBL/MYPGM'
'MYLIB/MYPGM'
DCL-F myfile HANDLER('MYPGM');
'MYSRVPGM(myProcecedure)'
'*LIBL/MYSRVPGM(myProcedure)'
'MYLIB/MYSRVPGM(myProcedure)'
DCL-F myfile HANDLER('MYLIB/MYSRVPGM(MyProc)');
DCL-F myfile HANDLER(handlerName) USROPN;
DCL-S handlerName CHAR(50);
handlerName = 'MYLIB/MYPGM';
OPEN myfile;
READ myfile;
CLOSE myfile;
handlerName = 'MYLIB/MYSRVPGM(myHandler)';
OPEN myfile;
READ myfile;
CLOSE myfile;
DCL-F myfile HANDLER(handlerPointer) USROPN;
DCL-S handlerPointer POINTER(*PROC);
handlerPointer = %PADDR('proc_a');
OPEN myfile;
READ myfile;
CLOSE myfile;
handlerPointer = %PADDR('proc_b');
OPEN myfile;
READ myfile;
CLOSE myfile;
DCL-F myfile HANDLER(myproc);
/COPY QOAR/QRPGLESRC,QRNOPENACC
DCL-PR myproc;
parm LIKEDS(QrnOpenAccess_T);
END-PR;
2 番目のパラメーターは任意指定です。これは、 RPG プログラムが追加情報をハンドラーと直接共有できるように するためにハンドラーに渡される変数を指定します。
DCL-F myfile HANDLER('MYPGM' : options) USROPN;
DCL-DS options QUALIFIED;
detail CHAR(10);
END-DS;
options.detail = 'FULL';
OPEN myfile;
. . .
CLOSE myfile;
options.detail = 'NONE';
OPEN myfile;
. . .
