The following example stores two records in the FAMILIES domain:
DTR> READY FAMILIES WRITE
DTR> REPEAT 2 STORE FAMILIES
Enter FATHER: GEORGE
Enter MOTHER: SANDY
Enter NUMBER_KIDS: 2
Enter KID_NAME: DANA
Enter AGE: 12
Enter KID_NAME: DACIA
Enter AGE: 9
Enter FATHER: WAYNE
Enter MOTHER: SHEEL
Enter NUMBER_KIDS: 2
Enter KID_NAME: BETE
Enter AGE: 8
Enter KID_NAME: ALEX
Enter AGE: 5
DTR> FIND FAMILIES WITH MOTHER = "SANDY", "SHEEL"
[2 records found]
DTR> PRINT ALL
NUMBER KID
FATHER MOTHER KIDS NAME AGE
GEORGE SANDY 2 DANA 12
DACIA 9
WAYNE SHEEL 2 BETE 8
ALEX 5
DTR>
The following example stores a record in the YACHTS domain, using
a context variable and a VERIFY clause:
DTR> SHOW HINKLEY_STORE
PROCEDURE HINKLEY_STORE
STORE A IN YACHTS USING
BEGIN
BUILDER = "HINKLEY"
MODEL = "BERMUDA 40"
RIG = "YAWL"
LOA = 40
DISP = 20000
BEAM = 12
PRICE = 82000
END VERIFY USING
BEGIN
PRINT A.BOAT, SKIP
IF *.CONFIRMATION CONT "N" THEN
PRINT SKIP THEN ABORT "BAD RECORD"
END
END_PROCEDURE
DTR> READY YACHTS WRITE
DTR> :HINKLEY_STORE
LENGTH
OVER
MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE
HINKLEY BERMUDA 40 YAWL 40 20,000 12 $82,000
Enter CONFIRMATION: N
ABORT: BAD RECORD
DTR>
The following example defines a domain for single-digit integers
and their squares, and uses a WHILE statement to control the
number of records stored in the domain:
DTR> DEFINE DOMAIN SQUARES USING
DFN> SQUARES_REC ON SQUARES.DAT;
DTR> DEFINE RECORD SQUARES_REC USING
DFN> 01 SQUARES.
DFN> 03 NUMBER PIC 9.
DFN> 03 ITS_SQUARE PIC 99.
DFN> ;
[Record is 3 bytes long.]
DTR> DEFINE FILE FOR SQUARES;
DTR> READY SQUARES WRITE
DTR> DECLARE N PIC 99.
DTR> N = 0
DTR> WHILE N NE 10 STORE SQUARES USING
CON> BEGIN
CON> NUMBER=N
CON> ITS_SQUARE = N * N
CON> N = N + 1
CON> END
DTR> FIND SQUARES
[10 records found]
DTR> PRINT ALL
ITS
NUMBER SQUARE
0 00
1 01
2 04
3 09
4 16
5 25
6 36
7 49
8 64
9 81
DTR>
The following example stores data from the WORKER domain into
the expanded NEW_WORKER domain. These domains have duplicate
elementary field names that are subordinate to different group
field names. The example uses a FOR statement to control the
STORE statement so that DEC DATATRIEVE stores the data from the
elementary fields correctly. The record definitions and the STORE
statement are as follows:
DTR> SHOW WORK_REC
RECORD WORK_REC USING
01 WORK.
03 LOCAL.
05 CITY PIC X(10).
05 STATE PIC X(2).
03 REMOTE.
05 CITY PIC X(10).
05 STATE PIC X(2).
;
DTR> SHOW NEW_WORK_REC
RECORD NEW_WORK_REC USING
01 WORK.
03 NEW_LOCAL.
05 CITY PIC X(10).
05 STATE PIC X(2).
03 NEW_REMOTE.
05 CITY PIC X(10).
05 STATE PIC X(2).
03 NAME.
05 FIRST PIC X(10).
05 LAST PIC X(15).
;
DTR> READY NEW_WORKER WRITE
DTR> FOR WORKER
CON> STORE NEW_WORKER USING
CON> BEGIN
CON> NEW_LOCAL = LOCAL
CON> NEW_REMOTE = REMOTE
CON> END
DTR>