NET/MASTER Network Control Language (NCL) Programmer's Guide
Working With KeySequenced Files in a UDB Pair
Working With Files
12–98 106160 Tandem Computers Incorporated
END get_records
/* ==================== PUT RECORDS ==================== */
put_record: PROCEDURE SHARE &id,&rno,&key,&field*,&rec.
/* Update a record and add to UDB pair */
&answer = N
SAY "Update record? (Y/N) Default=N"
CMDLINE "-GO ID="&SYS.NCLID _N
PAUSE VARS=&answer PARSE=NO SEGMENT=1
IF UPPER(&answer) = Y THEN DO
DO &fno = 1 TO 4
SAY Enter record &rno field &fno with key &key
CMDLINE "-GO ID="&SYS.NCLID
PAUSE VARS=&field&fno PARSE=NO
END /*&fno do*/
ASSIGN MDO=&rec. MAP=$NCL FROM VARS=&field*
FILE PUT KEY=&key MDO=&rec.
SELECT &SYS.FILE.RC
WHEN 0 THEN SAY "0 Record updated"
WHEN 8 THEN SAY "8 Error "&SYS.FILE.ERROR
WHEN 16 THEN SAY "16 "&SYSMSG
OTHERWISE
SAY Unexpected error
END /*select*/
END /*do*/
&key = ""
RETURN &key
END put_record
/* ==================== CLOSE FILE ==================== */
close_file: PROCEDURE SHARE &custfile,&distfile,&id
/* Close UDB pair from NCL and NonStop NET/MASTER */
SAY "Closing "&custfile &distfile
FILE CLOSE ID=&id
SELECT &SYS.FILE.RC
WHEN 16 THEN SAY "16 Closed"
OTHERWISE
SAY Unexpected error
END /*select*/
INTCMD "UDBCTL CLOSE=("&custfile","&distfile")"
INTREAD
INTCONT
END close_file
END zex1215n
Example—Deleting Records In a UDB Pair
The following NCL procedure allows you to delete records in a UDB pair:
zex1216n: PROCEDURE
/* Deletes records from a UDB pair */
ON ERROR FLUSH
IF &1 = "" OR &2 = "" THEN DO
SAY "Must enter two file names"
FLUSH
END /*do*/
ELSE
&custfile = &1