C Copyright © Oracle Corporation 1995. All Rights Reserved. SUBROUTINE display_cand C------------------------------------------------------ C This subroutine displays a record from C the CANDIDATES relation. It shows how C to display a field stored as data type VARYING STRING. C------------------------------------------------------ IMPLICIT NONE LOGICAL success C----------------------------------------------------- C Declare variables to hold each value that is to C be stored. Declare a character string to hold the C value that will be stored as type VARYING STRING. C----------------------------------------------------- CHARACTER candidate_lname*14,candidate_name*10,candidate_mi CHARACTER candidate_status*256,confirm &RDB& DATABASE EXTERNAL pers = FILENAME 'MF_PERSONNEL' &RDB& DBKEY SCOPE IS FINISH WRITE (6,90) 90 FORMAT ('1',T25,'**** DISPLAY CANDIDATE ****'///) C---------------------------------------------- C Prompt user for information needed to identify C a record in the CANDIDATES relation. C---------------------------------------------- 100 TYPE 110 110 FORMAT ('$',' Please enter the first name of the 1candidate or type exit: ') ACCEPT 120, candidate_name 120 FORMAT (A) DO WHILE ((candidate_name.NE.'EXIT ') .AND. 1 (candidate_name.NE.'exit ')) confirm = 'N' DO WHILE (confirm .EQ. 'N') TYPE 1000 1000 FORMAT ('$',' Please enter the candidates middle initial: ') ACCEPT 1010, candidate_mi 1010 FORMAT (A) TYPE 2000 2000 FORMAT ('$',' Please enter the candidates last name: ') ACCEPT 2010, candidate_lname 2010 FORMAT (A) PRINT *, ' ' TYPE 10000 10000 FORMAT ('$',' Have you entered all data correctly? (Y/N): ') ACCEPT 10010, confirm 10010 FORMAT (A) IF (confirm .EQ. 'N') THEN PRINT *, ' ' TYPE 110 ACCEPT 120, candidate_name END IF END DO IF ((candidate_name .NE. 'EXIT ') .AND. 1 (candidate_name .NE. 'exit ')) THEN success = .FALSE. &RDB& START_TRANSACTION READ_ONLY &RDB& FOR C IN CANDIDATES WITH &RDB& C.FIRST_NAME = candidate_name AND &RDB& C.MIDDLE_INITIAL = candidate_mi AND &RDB& C.LAST_NAME = candidate_lname C------------------------------------------------- C Retrieve and display the VARYING STRING field if C a record exists for the specified candidate. If C no record exists for this person, inform the user. C------------------------------------------------- &RDB& GET &RDB& candidate_status = C.CANDIDATE_STATUS &RDB& END_GET success = .TRUE. TYPE 4000,candidate_name, 1 candidate_mi,candidate_lname 4000 FORMAT('/',A,' ',A,' ',A,' has the 1following status: ') TYPE *, candidate_status &RDB& END_FOR &RDB& COMMIT IF (.NOT.(success)) THEN TYPE 6000 6000 FORMAT ('/',' No such candidate on file'/) END IF PRINT *, ' ' TYPE 110 ACCEPT 120, candidate_name END IF END DO RETURN END