NET/MASTER Network Control Language (NCL) Programmer's Guide
Working With Single Key-Sequenced Files
Working With Files
106160 Tandem Computers Incorporated 12–77
Example—Deleting Records in a Key-Sequenced File
The following NCL procedure allows you to delete records in a delimited
key-sequenced file:
zex1209n: PROCEDURE
/* Deletes records in a delimited key-sequenced UDB */
ON ERROR FLUSH
IF &1 = "" THEN DO
SAY "Must enter file name as first parameter"
FLUSH
END /*do*/
ELSE
&filename = &1
&id = DKSUDB
CALL open_file SHARE &filename,&id
CALL get_records SHARE &filename,&id
CALL close_file SHARE &filename,&id
EXIT
/* ==================== OPEN FILE ==================== */
open_file: PROCEDURE SHARE &filename,&id
/* Opens file for NonStop NET/MASTER and NCL */
SAY "Opening "&filename
INTCMD "UDBCTL OPEN="&filename" ID="&id
INTREAD
FILE OPEN ID=&id FORMAT=DELIMITED
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 &filename,&id
/* Get records and displays them on OCS window */
&key = 1
FILE GET KEY=&key UPDATE VARS=&field*
SELECT &SYS.FILE.RC
WHEN 0 THEN DO
SAY "0 Record retrieved"
SAY "Key is "&SYS.FILE.KEY
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
DO &fno = 1 TO &SYS.VARCNT
SAY "Field "&fno" is "&field&fno