READC (次の変更レコードの読み取り)
自由形式構文 | READC{(E) } レコード名 {データ構造 } |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
READC (E) | レコード名 | データ構造 | _ | ER | EOF |
READC 命令は、サブファイルの次の変更済みレコードを取り出すために、 外部記述ワークステーション・ファイルのみで使用することができます。 レコード名 オペランドは必須で、ファイル仕様書の SFILE キーワードによってサブファイルとして定義されたレコード様式の名前でなければなりません (SFILE キーワード については、SFILE(レコード様式:RRN フィールド)を参照してください)。
複数装置ファイルの場合には、データはプログラム装置に対応するサブファ イル・レコードから読み取られます。このプログラム装置は、ファイル仕様書の DEVID キーワードに指定されたフィールドによって識別されます。 そのような 指定がない場合には、データは最後の正常な入力操作で使用されたプログラム 装置から読み取られます。
READC 例外 (ファイル状況コードが 1000 より大きい) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細については、ファイル例外/エラーを 参照してください。
サブファイルにそれ以上変更済みレコードがない時にオンに 設定される標識を 75 から 76 桁目に指定することができます。 この情報 は %EOF 組み込み関数からも入手することができます。この関数は、サブファイルに それ以上変更済みレコードがない場合に '1' を戻します。それ以外の場合には '0' を戻します。
データ構造 オペランドが指定されている場合、レコードはデータ構造に直接読み込まれます。
データ構造は、EXTNAME(...:*INPUT or *ALL) または LIKEREC(...:*INPUT or *ALL) で定義されているデータ構造にする必要があります。
データ構造の定義方法、およびファイルとデータ
構造の間でどのようにデータが転送されるかについては、ファイル命令を参照してください。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords++++++++++++++++++++++++++++
* CUSSCR is a WORKSTN file which displays a list of records from
* the CUSINFO file. SFCUSR is the subfile name.
*
FCUSINFO UF E DISK
FCUSSCR CF E WORKSTN SFILE(SFCUSR:RRN)
F
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
* After the subfile has been loaded with the records from the
* CUSINFO file. It is written out to the screen using EXFMT with
* the subfile control record, CTLCUS. If there are any changes in
* any one of the records listed on the screen, the READC operation
* will read the changed records one by one in the do while loop.
* The corresponding record in the CUSINFO file will be located
* with the CHAIN operation and will be updated with the changed
* field.
C :
C EXFMT CTLCUS
C :
* SCUSNO, SCUSNAM, SCUSADR, and SCUSTEL are fields defined in the
* subfile. CUSNAM, CUSADR, and CUSTEL are fields defined in a
* record, CUSREC which is defined in the file CUSINFO.
*
C READC SFCUSR
C DOW %EOF = *OFF
C SCUSNO CHAIN (E) CUSINFO
* Update the record only if the record is found in the file.
C :
C IF NOT %ERROR
C EVAL CUSNAM = SCUSNAM
C EVAL CUSADR = SCUSADR
C EVAL CUSTEL = SCUSTEL
C UPDATE CUSREC
C ENDIF
C READC (E) SFCUSR
C ENDDO