ファイル状態コードとしての戻りコードの解釈

次のいずれかのルーチンが失敗した場合は、RETURN-CODE レジスタに失敗を示すファイル状態値が含まれます。

このファイル状態は、常に標準の ANSI'74 ファイル状態値です。エラーに対応する ANSI'74 ファイル状態が定義されていない場合は、拡張ファイル状態が返されます (9/nnn。この nnn はランタイム システム エラー番号です)。

そのため、RETURNING 句ではなく RETURN-CODE 句を使用する必要があります。上記のルーチンのいずれかを呼び出した後に RETURN-CODE がゼロ以外である場合は、ファイル状態として処理する必要があります。たとえば、次の抜粋では、存在しないファイルを削除しようとしています。

       copy cbltypes.cpy.
       01 file-status      pic xx comp-x. 
       01 redefines file-status. 
          03 fs-byte-1  pic x. 
          03 fs-byte-2  cblt-x1-compx.
       call "CBL_DELETE_FILE" using "c:\nonexistfile.txt". 
          if return-code not = 0 
            move return-code to file-status 
          end-if.
	      display "return-code = " return-code.
          display "fs-byte-1 = " fs-byte-1.
          display "fs-byte-2 = " fs-byte-2.
          display "which equates to COBRT013 File Not Found".

結果として得られるファイル状態で、fs-byte-1 には 9 (拡張ファイル状態コードを示す) が含まれ、fs-byte-2 には 013 (ランタイム システム エラー「COBRT013 File Not Found」に相当する) が含まれます。