30 から 39 桁目 (EXCEPT 名)

レコード・タイプが (17 桁目の E によって指示される) 例外レコードであっ た場合には、レコード行のこれらの桁に名前を入れることができます。 出力され るレコードのグループに割り当てられる名前は、EXCEPT 命令で指定することがで きます。この名前は EXCEPT 名と呼ばれます。 EXCEPT 名は、記号名の使用に関する規則に従っていなければなりません。 任意の数の出力レコードによるグループに同じ EXCEPT 名を使用することができ ますが、それらのレコードが連続したレコードである必要はありません。

EXCEPT 名を指定せずに EXCEPT 命令を指定した場合には、EXCEPT 名のない例 外レコードだけが検査されて、条件付け標識が満たされた場合に書き出されます。

EXCEPT 命令で EXCEPT 名を指定した場合には、その名前を持つ例外レコード だけが検査されて、条件付け標識が満たされた場合に書き出されます。

EXCEPT 名は主要レコード行に指定され、すべての AND/OR 行に適用されます。

EXCEPT 名を持つ例外レコードがオーバーフロー標識によって条件付けされて いる場合には、RPG IV サイクルのオーバーフロー部分またはフェッチ・オーバーフロー・ルーチンの間だけそのレコードが書き出されます。 EXCEPT 命令の処理時にはレコードは書き出されません。

フィールドのない EXCEPT 命令を使用して、ファイル中のレコード・ロックを 解放することができます。UNLOCK 命令もこの目的で使用することができます。図 145 では、ファイル RCDA のレコード・ロックが EXCEPT 命令によって解放されます。詳細について は、ILE Application Development Example を参照してください。

図 145. EXCEPT 命令によるファイルのレコード・ロックの解放
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq..
C*
C     KEY           CHAIN     RCDA
C                   EXCEPT    RELEASE
ORcdname+++D...N01N02N03Excnam++++.......................................
O
O*
ORCDA      E            RELEASE
O*                    (no fields)