NET/MASTER Network Control Language (NCL) Programmer's Guide

Working With KeySequenced Files in a UDB Pair
Working With Files
106160 Tandem Computers Incorporated 12–97
open_file: PROCEDURE SHARE &custfile,&distfile,&id
/* Open UDB pair for NonStop NET/MASTER and NCL */
SAY "Opening "&custfile &distfile
INTCMD "UDBCTL OPEN=("&custfile","&distfile") ID="&id
INTREAD
INTCONT
FILE OPEN ID=&id FORMAT=MAPPED MAP=$NCL
SELECT &SYS.FILE.RC
WHEN 0 THEN SAY "0 Read-only access"
WHEN 4 THEN SAY "4 Read and write access"
WHEN 8 THEN SAY "8 Read, write, and delete access"
WHEN 12 THEN SAY "12 No access"
WHEN 16 THEN SAY "16 "&SYSMSG
OTHERWISE
SAY Unexpected error
END /*select*/
END open_file
/* ==================== GET RECORDS ==================== */
get_records: PROCEDURE SHARE &custfile,&distfile,&id
/* Get records from UDB pair and display them */
/* on OCS window */
&rno = 0; &key = ""
ASSIGN MDO=&rec. MAP=$NCL
FILE GET OPT=SEQ UPDATE MDO=&rec.
SELECT &SYS.FILE.RC
WHEN 0 THEN DO
SAY "0 Record retrieved"; &rno = &rno + 1
SAY "Key is "&SYS.FILE.KEY; &key = &SYS.FILE.KEY
SAY "Path is "&SYS.FILE.PATH
END /*do*/
WHEN 4 THEN SAY "4 Record not found or EOF"
WHEN 8 THEN SAY "8 Error "&SYS.FILE.ERROR
WHEN 16 THEN SAY "16 "&SYSMSG
OTHERWISE
SAY Unexpected error
END /*select*/
DO WHILE &SYS.FILE.RC = 0
ASSIGN VARS=&field* FROM MDO=&rec.
DO &fno = 1 TO &SYS.VARCNT
SAY "Field "&fno" is "&field&fno
END /*do*/
CALL put_record SHARE &id,&rno,&key,&field*,&rec.
FILE GET OPT=SEQ UPDATE MDO=&rec.
SELECT &SYS.FILE.RC
WHEN 0 THEN DO
SAY "0 Record retrieved"; &rno = &rno + 1
SAY "Key is "&SYS.FILE.KEY; &key = &SYS.FILE.KEY
SAY "Path is "&SYS.FILE.PATH
END /*do*/
WHEN 4 THEN SAY "4 Record not found or EOF"
WHEN 8 THEN SAY "8 Error "&SYS.FILE.ERROR
WHEN 16 THEN SAY "16 "&SYSMSG
OTHERWISE
SAY Unexpected error
END /*select*/
END /*do while*/