*DECK DB$CRCK 
USETEXT RVRSCTX 
      FUNC DB$CRCK B; 
      BEGIN 
 #
* *   DB$CRCK - CHECK A LOG RECORD AGAINST LIST  PAGE  1
* *             OF ACCEPTANCE CRITERIA. 
* *   J E ESLER                                  DATE  06/28/76 
* *   A W ALLEN - DATABASE VERSIONS              DATE  09/19/80 
* 
* DC  PURPOSE 
* 
*     DETERMINE IF THE CURRENT LOG RECORD MEETS THE SELECTION CRITERIA
*     SPECIFIED IN THE CRITERIA TABLE.
* 
* DC  ENTRY CONDITIONS
* 
*     CRITERIA TABLE CHAIN IN DB$RCOM IS BUILT. 
*     ARRAY LOGREC IN DB$RCOM CONTAINS CURRENT LOG RECORD.
* 
* DC  EXIT CONDITIONS 
* 
*     TRUE = RECORD MEETS CRITERIA. 
*     FALSE= RECORD FAILS CRITERIA. 
* 
* DC  CALLING ROUTINES
* 
*     DB$RSEL - RECOVERY/RESTORE SELECTION ROUTINE
* 
* DC  CALLED ROUTINES 
* 
*     NONE
* 
* DC  NON-LOCAL VARIABLES 
* 
*     RECOVER/RESTORE COMMON
 #
# 
*     LOCAL VARIABLES 
# 
      ITEM NXTCRIT;                #LOOP INDEX# 
      CONTROL EJECT;
 #
* DC  DESCRIPTION 
* 
*     IF NO CONSTRAINTS ARE DEFINED, THEN ALL RECORDS PASS. 
 #
      IF FIRSTCRIT EQ 0 THEN       #NO CONSTRAINTS# 
        BEGIN 
        DB$CRCK = TRUE;            #ALL RECORDS PASS# 
        RETURN; 
        END 
 #
*     IF THE CURRENT RECORD COMPLETELY SATISFIES ANY CRITERIA ENTRY,
*     IT IS ACCEPTED. 
 #
          P<CRITERIA> = LOC(FIRSTCRIT); 
          FOR NXTCRIT = CRNEXT[0] WHILE NXTCRIT NQ 0 DO 
            BEGIN 
            P<CRITERIA> = NXTCRIT;
            NXTCRIT = CRNEXT[0];
  
            IF CRBRP EQ 0              #AFTER START RECOVERY POINT# 
              AND(CRBDATE[0] LS JLHDDATE[0] 
                OR(CRBDATE[0] EQ JLHDDATE[0]
                AND CRBTIME[0] LQ JLHDTIME[0]))  #AFTER START TIME# 
              AND(CRRUNUNITI[0] EQ 0
                OR CRRUNUNIT[0] EQ JLHDUSID[0]) #RUN-UNIT OK# 
              AND(CRJOBI[0] EQ 0
                OR CRJOB[0] EQ JLHDJBID[0])     #JOB-ID OK# 
              AND(CRAREAI[0] EQ 0 
                OR CRAREA[0] EQ JLHDARID[0])    #AREA-ID OK#
              AND (CRVENAMEI[0] EQ 0
                OR CRVENAME[0] EQ JLHDVENM[0])  #VERSION NAME          #
              THEN                 #ACCEPT LOG RECORD#
                BEGIN 
                DB$CRCK = TRUE; 
                RETURN; 
  
                END 
            END  #NXTCRIT#
 #
*     WHEN THE CRITERIA TABLE IS EXHAUSTED AND NO MATCH HAS BEEN FOUND, 
*     THE RECORD IS REJECTED. 
 #
      DB$CRCK = FALSE;
      RETURN; 
      END 
      TERM
