COBOL Manual for TNS/E Programs (H06.03+)

Procedure Division Verbs
HP COBOL Manual for TNS/E Programs520347-003
9-238
START
Example 9-65. START Statement With POSITION Phrase
SELECT EMP-FILE ASSIGN TO "EMPL1093"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS EMP-NO
ALTERNATE RECORD KEY IS DEPT-NO WITH DUPLICATES
ALTERNATE RECORD KEY IS EMP-NAME WITH DUPLICATES
FILE STATUS IS EMP-STATUS.
...
DATA DIVISION.
FILE SECTION.
...
FD EMP-FILE.
01 EMP-DATA.
05 EMP-NO PIC 9(6).
05 EMP-NAME PIC X(45).
05 EMP-DEPT PIC 9(7).
...
PROCEDURE DIVISION.
...
OPEN INPUT EMP-FILE
...
* Read $RECEIVE to get the query
READ REC-IN ...
* If this is an initial request, do a nonposition start
IF DEPT-NO OF EMP-LIST-REQUEST = ZEROS
START EMP-FILE KEY = DEPT-NO OF EMP-DATA
GENERIC
* Otherwise, resume after record last reply array ended with
ELSE
START EMP-FILE KEY = DEPT-NO OF EMP-DATA
AFTER POSITION EMP-NO
GENERIC
END-IF
* Zero the counter
* Perform (with test after) until EOF or 10 employees found:
* Read EMP-FILE NEXT record
* If EOF, return array to requester with signal for EOF
* else add 1 to the counter
* copy info to the array
* end-if