印刷スプール・ファイルをデータ・ベース化するのに良く見られる方法としては
OVRPRTF QPRINT HOLD(*YES)
CALL MYPRINTPGM
DLTOVR QPRINT
CHKOBJ OBJ(QTEMP/QPRINT) OBJTYPE(*FILE)
MONMSG MSGID(CPF9800) EXEC(DO)
CRTPF FILE(QTEMP/QPRINT) RCDLEN(132) IGCDTA(*YES) +
LVLCHK(*NO) AUT(*ALL)
ENDDO
CPYSPLF FILE(QPRINT) TOFILE(QTEMP/QPRINT) JOB(*) +
SPLNBR(*LAST) MBROPT(*REPLACE)
DLTSPLF FILE(QPRINT) JOB(*) SPLNBR(*LAST)
のようにして CPYSPLF コマンドを使ってデータ・ベースに変換する方法である。
ところが大量の印刷スプールを扱うときには、長い時間がかかってしまい
何とか速くする方法はないものかと疑問に思うかも知れない。
もとよりソフトウェア製品の場合には CPYSPLF コマンドを利用することは、
パフォーマンスの面においても論外であるが中にはそうした製品もある。
ところで、何も QPRINT という印刷スプール・ファイルに出力してからわざわざ
データ・ベース : QTEMP/QPRINT に変換しなくても、始めから印刷プログラムの
QPRINT 出力をデータ・ベース QTEMP/QPRINT に一時変更してしまって、
直接、データ・ベースに出力することもできるのである。
意外とこの便利な方法は知られていないので、機会があれば是非お試しいただきたい。
CHKOBJ OBJ(QTEMP/QPRINT) OBJTYPE(*FILE)
MONMSG MSGID(CPF9800) EXEC(DO)
CRTPF FILE(QTEMP/QPRINT) RCDLEN(132) IGCDTA(*YES) +
LVLCHK(*NO) AUT(*ALL)
ENDDO
OVRPRTF QPRINT TOFILE(QTEMP/QPRINT)
CALL MYPRINTPGM
DLTOVR QPRINT