印刷スプール・ファイルをデータ・ベース化するのに良く見られる方法としては
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