Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

I/O操作の完了後に実施する戻りコードの検査にはさまざまな方法があります。

1つ目は、常にI1つ目は、常にI/Oコマンドのデフォルト・パラメータであるIO_STATUS(*STATUS)を使用する方法です。この場合、戻りコードは#IO$STSと呼ばれるフィールドにマッピングされます。そしてこの#IO$STSは他のフィールドと同様に参照することができます。例えば、以下のようになります。 

     FETCH   FIELDS(#ORDERHEAD) FROM_FILE(ORDHDR) WITH_KEY(#ORDER)
IF      COND('#IO$STS *NE OK')
MESSAGE MSGTXT('Order not found in current order file')
ENDIF

2つ目は、IO2つ目は、IO_STATUSパラメータを使って戻りコードをユーザー定義のフィールドにマッピングする方法です。例えば、以下のようになります。 

     DEFINE  FIELD(#RETCODE) TYPE(*CHAR) LENGTH(2)
FETCH   FIELDS(#ORDERHEAD) FROM_FILE(ORDHDR) WITH_KEY(#ORDER)
       IO_STATUS(#RETCODE)
IF      COND('#RETCODE *NE OK')
MESSAGE MSGTXT('Order not found in current order file')
ENDIF

3つ目は、IF3つ目は、IF_STATUSコマンドを使って最新の戻りコードを自動で検査する方法です(これが最適だと考えられます)。上記例は以下のようになります。 

     FETCH     FIELDS(#ORDERHEAD) FROM_FILE(ORDHDR) WITH_KEY(#ORDER)
IF_STATUS IS_NOT(*OKAY)
MESSAGE   MSGTXT('Order not found in current order file')
ENDIF

詳細と例については、、「IF_STATUSコマンド」を参照してください。

参照 

I/Oコマンド戻りコード表