*DECK DB$SR69 
USETEXT MD10CTX 
USETEXT UTMPTTX 
USETEXT CUGBATX 
      PROC DB$SR69; 
 #
* *   DB$SR69 - CHANGE PROC LIB PF DATA          PAGE  1
* *   G. F. KENDALL                              DATE  07/25/79 
* *   J. G. SERPA - MDU 2.3 ENHANCEMENTS         DATE  09/22/80 
* 
* DC  PURPOSE 
* 
*     IF DB PROCEDURE LIST EXISTS ON OLD MD,
*     THEN CHANGE PF INFO IN DB PROC LIST AND IN PFN TABLE
*       AND RETURN YES, 
*     ELSE RETURNS NO.
* 
* DC  ENTRY CONDITIONS
* 
*     ASSUMPTIONS 
* 
*     DBPRFLG  - T = A DB PROC LIST WAS FOUND ON OLD MD 
*     DBPROCBP - ADDRESS OF DB PROCEDURE LIST BLOCK HEADER WORD 
*     CURFILTYP - INDICATES THAT CURRENT FILE IS PROCEDURE
*     MDPFINFO  - HAS PERMANENT FILE INFORMATION FOR DBP LIB
*     SCHNAME - NAME OF THE CURRENT SCHEMA
* 
* DC  EXIT CONDITIONS 
* 
*     IF THE OLD MD DID NOT HAVE A DATABASE PROCEDURE LIST, DIAGNOSTIC
*     150 IS ISSUED. OTHERWISE, THE PROCEDURE LIBRARY PERMANENT FILE
*     INFORMATION HAS BEEN REPLACED.
*     EXIT IS TO DB$NO. 
* 
* DC  CALLING ROUTINES
* 
*     DB$SNTX - SYNTAX CRACKER
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF PROC DB$DIAG;     # ISSUE DIAGNOSTIC MESSAGES               #
      XREF PROC DB$MDPR;     # REPLACE PF INFO IN PFN TABLE            #
      XREF PROC DB$NO;       # SYNTAX TABLE DRIVER NO RETURN           #
# 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
# 
  
      BASED ARRAY MDDBPROC S(1);  # DATABASE PROCEDURE LIST            #
        BEGIN 
*CALL MDDPDDCLS 
        END 
  
# 
* 
* DC  DESCRIPTION 
* 
*     REPLACE PF DATA IN DB PROCEDURE LIST AND PFN TABLE AS A PART
*     OF -CHANGE- PROCESSING. 
* 
 #
  
      ITEM INDEX I;          # INDEX INTO PW ARRAYS                    #
      CONTROL EJECT;
  
      BEGIN                  # DB$SR69 EXECUTABLE CODE                 #
  
      IF DBPRFLG             # IF DB PROC LIB ENTRY FOUND ON OLD MD    #
      THEN
        BEGIN 
        P<MDDBPROC> = DBPROCBP + 1; 
  
#       REPLACE PF DATA IN PFN TABLE                                   #
  
        DB$MDPR(MDDPPF[0],MDDPUN[0],MDDPSN[0],MDPFINAME[CURFILTYP], 
                MDPFUNID[CURFILTYP],MDPFSNPN[CURFILTYP]); 
  
#       REPLACE PF INFO IN DB PROC LIST                                #
  
        P<GETENTRY> = LOC(MDPFWORD[CURFILTYP]); 
        P<PUTENTRY> = LOC(MDDPPF[0]); 
        FOR INDEX = 0 STEP 1
          UNTIL DFPFENTLEN - 1
        DO
          BEGIN 
          PUTINT[INDEX] = GETINT[INDEX];
          END 
        DB$NO;                     # RETURN TO DB$STD                  #
  
        END 
      ELSE
        BEGIN 
        DB$DIAG(150,SCHNAME);  # ATTEMPT TO CHANGE NON-EXISTANT        #
                               # DB PROCEDURE LIST INFO                #
        DB$NO;                 # RETURN TO CALLER                      #
        END 
  
      END   # DB$SR69 # 
  
      TERM; 
