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

Working With KeySequenced Files in a UDB Pair
Working With Files
12–90 106160 Tandem Computers Incorporated
create_file: PROCEDURE SHARE &custfile,&distfile
/* Use FUP to create new key-sequenced files */
DO &i = 1 TO 2
IF &i = 1 THEN
&filename = &custfile
ELSE
&filename = &distfile
SAY "Creating file "&filename
INTCMD "OPSYS SEND FUP CREATE "&filename", TYPE K,",
"REC 512, KEYLEN 6"
DO UNTIL &msgno = NNM0999
INTREAD VARS=(&msgno(7),*,&text) TYPE=ANY PARSE=NO
IF POS("ERR 10",&text) > 0 THEN DO
/* File exists, so flush NCL process */
SAY "Must enter new file name"
FLUSH
END /*do*/
INTCONT
END /*do until*/
END /*do*/
INTCMD "OPSYS KILL FUP"
INTREAD
INTCONT
END create_file
/* ==================== OPEN FILE ==================== */
open_file: PROCEDURE SHARE &distfile,&id
/* Open file for NonStop NET/MASTER and NCL */
SAY "Opening "&distfile
INTCMD "UDBCTL OPEN="&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
/* ==================== ADD RECORDS ==================== */
add_records: PROCEDURE SHARE &distfile,&id
/* Get records from OCS command input line */
/* and add to file. */
ASSIGN MDO=&rec. MAP=$NCL
/* Allows you to enter 4 fields for 4 records */
DO &rno = 1 TO 4
DO &fno = 1 TO 4
SAY Enter record &rno field &fno
CMDLINE "-GO ID="&SYS.NCLID _
PAUSE VARS=&field&fno PARSE=NO
END /*&fno do*/
/* Get record key */
SAY Enter record key for record &rno