*DECK DB$CAPL 
  
      PROC DB$CAPL; 
      BEGIN 
 #
* *   DB$CAPL - LOAD AND LOCK CDCS OVCAPS        PAGE  1
* *   J.M. JACOBS                                DATE  11/01/82 
* 
* DC  PURPOSE 
* 
*     LOADS AND LOCKS ANY CDCS OVCAPS WHICH THE USER REQUESTED
*     FOR THE DURATION OF CDCS EXECUTION. 
* 
* DC  ENTRY CONDITIONS
* 
*     PARAMETERS
* 
*     NONE. 
* 
*     ASSUMPTIONS 
* 
*     IF DURATION LOADING HAS BEEN REQUESTED BY THE USER, A FLAG
*     (ITEM PFL) HAS BEEN SET (BY DB$AINT) IN ARRAY DB$AIPN FOR 
*     EACH FEATURE REQUESTED ON THE CONTROL CARD OR IN THE
*     DIRECTIVE FILE. 
* 
* DC  EXIT CONDITIONS 
* 
*     FOR EACH FLAG SET IN ARRAY DB$AIPN, DB$OLLO HAS BEEN CALLED 
*     TO LOAD AND LOCK THE APPROPRIATE OVCAP OR OVCAPS. 
* 
* DC  CALLING ROUTINES
* 
*     DB$INIT - CDCS INITIALIZATION ROUTINE 
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$OLLO;          # LOAD AND LOCK CDCS OVCAPS          #
# 
*     ENTRY POINT NAMES OF OVCAPS TO BE LOADED BY DB$OLLO 
# 
      XREF PROC DB$ADAX;          # INVOKE OVCAP                       #
      XREF PROC DB$BEG$;          # TRANSACTION OVCAP                  #
      XREF PROC DB$CPRO;          # CONSTRAINT OVCAP                   #
      XREF PROC DB$DPIF;          # DATA BASE PROC OVCAP               #
      XREF PROC DB$INV$;          # INVOKE OVCAP                       #
      XREF PROC DB$JFIN;          # INVOKE AND JOURNAL LOG OVCAP       #
      XREF PROC DB$JLO;           # JOURNAL LOG OR TRANSACTION OVCAP   #
      XREF PROC DB$JRPT;          # JOURNAL LOGGING OVCAP              #
      XREF PROC DB$MFP;           # RELATIONS OVCAP                    #
      XREF PROC DB$QRF;           # BLOCK LOGGING OVCAP                #
      XREF PROC DB$REL$;          # RELATIONS OVCAP                    #
      XREF PROC DB$RFIN;          # INVOKE AND TRANSACTION OVCAP       #
      XREF PROC DB$TRJL;          # TRANSACTION OVCAP                  #
      XREF PROC DC$CMPR;          # COMPARE ROUTINES USED BY RELATIONS #
# 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE. 
* 
* DC  DESCRIPTION 
* 
*     DB$CAPL CHECKS EACH OF THE OVCAP PARAMETER FLAGS (ITEM PFL) 
*     IN ARRAY DB$AIPN.  FOR EACH FLAG WHICH IS TRUE, DB$OLLO IS
*     CALLED TO LOAD AND LOCK THE APPROPRIATE OVCAP OR OVCAPS.
* 
 #
  
  
# 
*     THE FOLLOWING DEFS ARE USED TO INDEX INTO ARRAY DB$AIPN TO
*     CHECK THE OVCAP PARAMETER FLAGS (ITEM PFL).  IF ANY OF THESE
*     INDEXES ARE CHANGED IN DB$AIPN, THESE DEFS MUST BE CHANGED ALSO.
# 
  
      DEF DFCONPARM     #21#;          # CONSTRAINT PARAMETER INDEX    #
      DEF DFDBPPARM     #22#;          # DB PROC PARAMETER INDEX       #
      DEF DFINVPARM     #23#;          # INVOKE PARAMETER INDEX        #
      DEF DFJLOGPARM    #24#;          # JOURNAL LOG PARAMETER INDEX   #
      DEF DFQRFPARM     #25#;          # BLOCK LOGGING PARAMETER INDEX #
      DEF DFRELPARM     #26#;          # RELATIONS PARAMETER INDEX     #
      DEF DFTRANPARM    #27#;          # TRANSACTIONS PARAMETER INDEX  #
  
# 
*     NON-LOCAL ARRAYS REFERENCED 
# 
  
      XREF ARRAY DB$AIPN;              # VALID PARAMETER NAMES AND     #
                                       # PARAMETER FLAGS               #
        BEGIN 
        ITEM PFL B(00,00,01);          # FLAGS FOR PARAMETER NAMES     #
        END 
  
  
# 
*     B E G I N   D B $ C A P L   E X E C U T A B L E   C O D E 
# 
  
  
      IF PFL[DFCONPARM]           # IF CON PARAMETER FOUND             #
      THEN
        BEGIN 
        DB$OLLO(DB$CPRO);         # LOAD AND LOCK CONSTRAINT OVCAP     #
        END 
  
      IF PFL[DFDBPPARM]           # IF DBP PARAMETER FOUND             #
      THEN
        BEGIN 
        DB$OLLO(DB$DPIF);         # LOAD AND LOCK DATA BASE PROC OVCAP #
        END 
  
      IF PFL[DFINVPARM]           # IF INV PARAMETER FOUND             #
      THEN
        BEGIN 
        DB$OLLO(DB$ADAX);         # LOAD AND LOCK FIRST INVOKE OVCAP   #
        DB$OLLO(DB$INV$);         # LOAD AND LOCK SECOND INVOKE OVCAP  #
        IF PFL[DFJLOGPARM]        # IF INV AND JLOG PARAMETERS FOUND   #
        THEN
          BEGIN 
          DB$OLLO(DB$JFIN);       # LOAD AND LOCK INV AND JLOG OVCAP   #
          END 
        IF PFL[DFTRANPARM]        # IF INV AND TRAN PARAMETERS FOUND   #
        THEN
          BEGIN 
          DB$OLLO(DB$RFIN);       # LOAD AND LOCK INV AND TRAN OVCAP   #
          END 
        END 
  
      IF PFL[DFJLOGPARM]          # IF JLOG PARAMETER FOUND            #
      THEN
        BEGIN 
        DB$OLLO(DB$JRPT);         # LOAD AND LOCK FIRST JLOG OVCAP     #
        DB$OLLO(DB$JLO);          # LOAD AND LOCK SECOND JLOG OVCAP    #
        END 
  
      IF PFL[DFQRFPARM]           # IF QRF PARAMETER FOUND             #
      THEN
        BEGIN 
        DB$OLLO(DB$QRF);          # LOAD AND LOCK BLOCK LOGGING OVCAP  #
        END 
  
      IF PFL[DFRELPARM]           # IF REL PARAMETER FOUND             #
      THEN
        BEGIN 
        DB$OLLO(DB$MFP);          # LOAD AND LOCK FIRST RELATION OVCAP #
        DB$OLLO(DB$REL$);         # LOAD AND LOCK SECOND RELATION OVCAP#
        DB$OLLO(DC$CMPR);         # LOAD AND LOCK COMPARE ROUTINES     #
        END 
  
      IF PFL[DFTRANPARM]          # IF TRAN PARAMETER FOUND            #
      THEN
        BEGIN 
        DB$OLLO(DB$BEG$);         # LOAD AND LOCK FIRST TRAN OVCAP     #
        DB$OLLO(DB$TRJL);         # LOAD AND LOCK SECOND TRAN OVCAP    #
        DB$OLLO(DB$JLO);          # LOAD AND LOCK THIRD TRAN OVCAP     #
        END 
  
      RETURN; 
      END                         # END PROC DB$CAPL                  # 
      TERM
