The following programs demonstrate the use of the MATCHING conditional expression and the SORTED clause. These programs create a record stream containing all the records in the EMPLOYEES relation in which the field LAST_NAME begins with the letter "R". Then the programs sort the record stream in ascending numerical order of the employee IDS. These programs print, in numerical order, the employee ID, followed by the last name and first name for all the records in the record stream.
1 – C Example
#include <stdio.h> DATABASE PERS = FILENAME "PERSONNEL"; DECLARE_VARIABLE match_string SAME AS EMPLOYEES.LAST_NAME; main() { read_string(match_string,"R*",sizeof(match_string)); READY PERS; START_TRANSACTION READ_ONLY; FOR E IN EMPLOYEES WITH E.LAST_NAME MATCHING match_string SORTED BY E.EMPLOYEE_ID printf ("%s %s %s",E.EMPLOYEE_ID, E.LAST_NAME, E.FIRST_NAME); END_FOR; COMMIT; FINISH; }
2 – Pascal Example
program matching (input,output); DATABASE PERS = FILENAME 'PERSONNEL'; var match_string: VARYING [10] OF CHAR; begin match_string := 'R*'; READY PERS; START_TRANSACTION READ_ONLY; FOR E IN EMPLOYEES WITH E.LAST_NAME MATCHING match_string SORTED BY E.EMPLOYEE_ID writeln (E.EMPLOYEE_ID,' ', E.LAST_NAME, E.FIRST_NAME); END_FOR; COMMIT; FINISH; end.