67 lines
2.0 KiB
Plaintext
67 lines
2.0 KiB
Plaintext
|
/******************************************************/
|
|||
|
/* This program allows you to retrieve and update */
|
|||
|
/* individual records in an employee data base using */
|
|||
|
/* a keyed file. */
|
|||
|
/******************************************************/
|
|||
|
update:
|
|||
|
procedure options(main);
|
|||
|
declare
|
|||
|
1 employee static,
|
|||
|
2 name character(30) varying,
|
|||
|
2 address,
|
|||
|
3 street character(30) varying,
|
|||
|
3 city character(10) varying,
|
|||
|
3 state character(12) varying,
|
|||
|
3 zip fixed decimal(5),
|
|||
|
2 age fixed decimal(3),
|
|||
|
2 wage fixed decimal(5,2),
|
|||
|
2 hours fixed decimal(5,1);
|
|||
|
|
|||
|
declare
|
|||
|
1 keylist (100),
|
|||
|
2 keyname character(30) varying,
|
|||
|
2 keyval fixed binary;
|
|||
|
|
|||
|
declare
|
|||
|
(i, endlist) fixed,
|
|||
|
eolist bit(1) static initial('0'b),
|
|||
|
matchname character(30) varying,
|
|||
|
(emp, keys) file;
|
|||
|
|
|||
|
open file(emp) update direct environment(f(128))
|
|||
|
title ('$1.EMP');
|
|||
|
|
|||
|
open file(keys) stream environment(b(4000))
|
|||
|
title('$1.key');
|
|||
|
|
|||
|
do i = 1 to 100 while(^eolist);
|
|||
|
get file(keys) list(keyname(i),keyval(i));
|
|||
|
eolist = keyname(i) = 'EOF';
|
|||
|
end;
|
|||
|
|
|||
|
do while('1'b);
|
|||
|
put skip list('Employee: ');
|
|||
|
get list(matchname);
|
|||
|
if matchname = 'EOF' then
|
|||
|
stop;
|
|||
|
do i = 1 to 100;
|
|||
|
if matchname = keyname(i) then
|
|||
|
do;
|
|||
|
read file(emp) into(employee)
|
|||
|
key(keyval(i));
|
|||
|
put skip list('Address: ',
|
|||
|
street, city, state, zip);
|
|||
|
put skip list(' ');
|
|||
|
get list(street, city, state, zip);
|
|||
|
put list('Hours:',hours,': ');
|
|||
|
get list(hours);
|
|||
|
write file(emp) from (employee)
|
|||
|
keyfrom(keyval(i));
|
|||
|
end;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end update;
|
|||
|
|
|||
|
|
|||
|
|