バッチ環境ではDAMファイルの内容を出力できます。オフラインでオープンした物理ファイルは,処理を終了したら必ずクローズさせてください。なお,オフラインで使用する関数は,オンライン(SUP,SPP,MHP)では使用できません。使用した場合の動作は保証できません。
物理ファイルを,割り当てたときに設定した物理ファイル名を設定したdc_dam_iopen関数【CBLDCDMB('OPEN')】でオープンします。物理ファイルをオープンしたときにファイル記述子がリターンされます。ファイル記述子は,オープンしてからクローズするまでの処理で使うので,UAP内で保持しておいてください。
オープン以降の処理(ブロックの入力,出力)は,このファイル記述子を関数に設定してアクセスします。物理ファイルのクローズもファイル記述子を設定したdc_dam_iclose関数【CBLDCDMB('CLOS')】でクローズします。
dc_dam_iopen関数でオープンした物理ファイルのブロックを入出力するときは,次に示す2種類の方法があります。
複数ブロックを一括入出力する指定は,ファイルの先頭から順番に入出力する場合だけ有効です。
物理ファイルを割り当てるときとオープンするときに,入出力する単位としてブロック数を指定できます。
入力したブロックを物理ファイルに出力するときに,出力するブロック以降にある残りの領域を,ヌル文字で埋めるかどうかを設定できます。出力するブロック以降の残りの領域をヌル文字で埋めるときはINITIALIZEを設定します。ヌル文字でクリアしないときは,OVERWRITEを設定します。OVERWRITEを設定した場合には,任意のブロックの入出力ができます。このとき,出力したブロック以降の領域は更新されないでそのまま残ります。
残りのブロックをヌル文字で埋めるかどうかは,dc_dam_iopen関数の引数で指定します。この指定は,dc_dam_put関数でブロックを出力してdc_dam_iclose関数でクローズしたときに有効です。dc_dam_iclose関数を呼び出さないでUAPを終了した場合は,残りのブロックをヌル文字で埋めません。ヌル文字で埋める場合は,必ずdc_dam_iclose関数を呼び出してください。
オフライン中のDAMファイルのアクセス手順を次の図に示します。
図4-3 オフライン時のDAMファイルのアクセス手順