
                                                                22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   1
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0001    	OPTIONS/EXTEND
0002    	FUNCTION	DBEVL$PARSE( EVAL$STR, LOCSTR )
0003    C
0004    C*************************************************************************
0005    C
0006    C **  PRE-PARSE THE COMMAND STRING AND DETERMINE IF WHERE CLAUSE 
0007    C **  WAS PROPERLY ISSUED BY THE USER.  IF YES, THEN EVALUATE
0008    C **  STRING ASSOCIATED WITH FIELD SPECIFIED.
0009    C
0010    C**************************************************************************
0011    C
0012    C **  GET DATABASE INCLUDE FILES NEEDED FOR THIS PROCEDURE
0013    C
0014    	INCLUDE 'LIFE_DEV:DB_PARAMS.INC/NOLIST'
0159    	INCLUDE 'LIFE_DEV:DB_INTERN.INC/NOLIST'
0197    	INCLUDE 'LIFE_DEV:DB_FUNCS.INC/NOLIST'
0218    	INCLUDE 'LIFE_DEV:DB_CROSS.INC/NOLIST'
0339    	INCLUDE	'LIFE_DEV:DB_WHERE.INC/NOLIST'
0363    C
0364    C ** DECLARE LOCAL VARIABLES.
0365    C
0366    	CHARACTER	LOCSTR*(*), WHSTR*255
0367    	INTEGER*4	CLEN, WLEN, EPNT, LFID, IPNT, QPNT, FNDDOT
0368    C
0369    C ** INITIALIZE THE FUNCTION RETURN VALUE.
0370    C
0371    	DBEVL$PARSE = USRDB$_FAILURE
0372    C
0373    C **  TRIM AND COMPRESS THE PASSED STRING.
0374    C
0375    	CALL STR$TRIM( WHSTR, LOCSTR, WLEN )
0376    	CLEN = WLEN
0377    	CALL DBNET$COMP_STRING( LOCSTR, CLEN )
0378    C
0379    C **  FIND THE PERIOD USED IN THE .EQ. OR .NE. BOOLEAN FUNCTION.
0380    C
0381    	FNDDOT = INDEX(LOCSTR, '.')
0382    C
0383    C **  IF NO PERIOD THEN THE BOOLEAN FUNCTION NOT PRESENT.
0384    C
0385    	IF (FNDDOT .EQ. 0) THEN
0386    C
0387    C **  ISSUE ERROR MESSAGE AND BRANCH.
0388    C
0389    		WRITE(6,4000)
0390    		GOTO 9000
0391    	ENDIF
0392    C
0393    C **  DECLARE THE END POINT FOR THE INITIAL STRING INDICATING THE TYPE FIELD.
0394    C
0395    	EPNT = FNDDOT - 1
0396    C
0397    C **  GET THE POINTER FOR THE FIELD TYPE ARRAY.
0398    C
0399    	IF ( DBCRS$FIELD_IDENT( LOCSTR(1:EPNT), IPNT ) .EQ. USRDB$_FAILURE ) THEN
0400    C
0401    C **  ISSUE ERROR MESSAGE AND BRANCH

DBEVL$PARSE                                                     22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   2
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0402    C
0403    		WRITE(6,4050) LOCSTR(1:EPNT)
0404    		GOTO 9000
0405    	ENDIF
0406    C
0407    C **  DEFINE THE FIELD BEING PROCESSED
0408    C
0409    	LFID = USRDB$_CROSS_FID( IPNT )
0410    C
0411    C **  FIND THE POINT WHERE THE BOOLEAN SHOULD END IN THE STRING PASSED.
0412    C
0413    	EPNT = FNDDOT + 3
0414    C
0415    C **  CHECK IF THE .EQ. BOOLEAN EXIST.
0416    C
0417    	IF (LOCSTR(FNDDOT:EPNT) .EQ. '.EQ.') THEN
0418    C
0419    C **  DEFINE THE EVALUATION RECORD VALUE FOR .EQ.
0420    C
0421    		EVAL$STR.QUAL = 'E'
0422    C
0423    C **  CHECK IF THE .NE. BOOLEAN EXIST.
0424    C
0425    	ELSE IF (LOCSTR(FNDDOT:EPNT) .EQ. '.NE.') THEN
0426    C
0427    C **  DEFINE THE EVALUATION RECORD VALUE FOR .NE.
0428    C
0429    		EVAL$STR.QUAL = 'N'
0430    	ELSE
0431    C
0432    C **  NO BOOLEAN VALUE EXIST, WRITE ERROR MESSAGE.
0433    C
0434    		WRITE(6,4100)
0435    		GOTO 9000
0436    	ENDIF
0437    C
0438    C **  FIND FIRST QUOTE MARK IN THE STRING.
0439    C
0440    	QPNT = INDEX(WHSTR,'"')
0441    C
0442    C **  CHECK IF NO QUOTES WERE ISSUED.
0443    C
0444    	IF ((QPNT .EQ. 0) .OR. (QPNT .EQ. WLEN)) THEN
0445    C
0446    C **  ISSUE ERROR MESSAGE FOR NO QUOTE FOUND.
0447    C
0448    		WRITE(6,4150)
0449    		GOTO 9000
0450    C
0451    	ENDIF
0452    C
0453    C **  FIRST QUOTE FOUND, INCREMENT SO WE ONLY TAKE THE TEXT.
0454    C
0455    	QPNT = QPNT + 1
0456    C
0457    C **  LOOK FOR END QUOTE MARK.
0458    C

DBEVL$PARSE                                                     22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   3
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0459    	EPNT = INDEX(WHSTR(QPNT:WLEN),'"')
0460    C
0461    C **  IF END QUOTE FOUND, THEN DECREMENT THE POINTER TO POINT ONLY AT TEXT.
0462    C
0463    	IF (EPNT .NE. 0) THEN
0464    		EPNT = QPNT + EPNT - 2
0465    C
0466    C **  ELSE THE END POINT IS THE LENGTH OF THE STRING BEING PARSED.
0467    C
0468    	ELSE
0469    		EPNT = WLEN
0470    	ENDIF
0471    C
0472    C **  PUSH VALUES FOUND ONTO THE RECORD STRUCTURE.
0473    C
0474    	EVAL$STR.FIND  = WHSTR(QPNT:EPNT)
0475    	EVAL$STR.FID   = LFID
0476    	EVAL$STR.FSLEN = EPNT - QPNT + 1
0477    C
0478    C **  COMPOSE THE TYPE OF STRING PASSED AND ITS ATTRIBUTES.
0479    C
0480    	IF (DBEVL$COMPOSE( EVAL$STR ) .EQ. USRDB$_FAILURE) THEN
0481    C
0482    C **  IF FAILURE TO COMPOSE THEN ERROR WRITE MESSAGE AND BRANCH. 
0483    C
0484    		WRITE(4200) WHSTR(QPNT:EPNT)
0485    		GOTO 9000
0486    	ENDIF
0487    C
0488    C **  REDEFINE THE FUNCTION RETURN VALUE.
0489    C
0490    	DBEVL$PARSE = USRDB$_SUCCESS
0491    C
0492    C **  RETURN TO CALLING PROGRAM.
0493    C
0494    9000	RETURN
0495    C
0496    4000	FORMAT(' LQL%PARSE.WHERE:  No Boolean Delimiter Found.')
0497    4050	FORMAT(' LQL%PARSE.WHERE:  Invalid Field Specified.  Field: ',A15)
0498    4100	FORMAT(' LQL%PARSE.WHERE:  No Boolean Specifier Found.')
0499    4150	FORMAT(' LQL%PARSE.WHERE:  String must be enclosed in quotes.  (")')
0500    4200	FORMAT(' LQL%PARSE.WHERE:  Unable to Evaluate String Provided.'/4X,A75)
0501    C
0502    	END

DBEVL$PARSE                                                     22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   4
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

PROGRAM SECTIONS

    Name				 Bytes   Attributes

  0 $CODE                                  479   PIC CON REL LCL   SHR   EXE   RD NOWRT QUAD
  1 $PDATA                                 228   PIC CON REL LCL   SHR NOEXE   RD NOWRT QUAD
  2 $LOCAL                                9832   PIC CON REL LCL NOSHR NOEXE   RD   WRT QUAD

    Total Space Allocated                10539


ENTRY POINTS

    Address  Type  Name          

  0-00000000  I*4  DBEVL$PARSE   


VARIABLES

    Address  Type  Name                                               Address  Type  Name                            

  2-000025AC  I*4  CLEN                                                 **      I*4  DBCPY$COPY                      
      **      I*4  DBEVL$DEF_SORT                                       **      I*4  DBEVL$LOGICAL                   
      **      I*4  DBEVL$SELECT                                         **      I*4  DBEVL$SORT                      
      **      I*4  DBEVL$UPDATE                                         **      I*4  DBEVL$WHERE                     
      **      I*4  EPNT                                                 **      I*4  FNDDOT                          
  2-000025B4  I*4  IPNT                                                 **      I*4  LFID                            
 AP-00000008@ CHAR LOCSTR                                               **      I*4  QPNT                            
      **      I*4  USRDB$CLEAR_RECORD                                   **      I*4  USRDB$DELETE_RECORD             
      **      I*4  USRDB$GET_DUMP                                       **      I*4  USRDB$GET_FIELD                 
      **      I*4  USRDB$GET_INIT                                       **      I*4  USRDB$GET_RECORD                
      **      I*4  USRDB$LOCATE                                         **      I*4  USRDB$PUT_DUMP                  
      **      I*4  USRDB$PUT_FIELD                                      **      I*4  USRDB$PUT_RECORD                
      **      CHAR USRDB$REC                                            **      I*4  USRDB$SQL                       
      **      I*4  USRDB$UPDATE_RECORD                              2-000024A8  CHAR WHSTR                           
  2-000025B0  I*4  WLEN                                           


RECORDS

    Address   Name          Structure                             Bytes

  2-00000130  DBINT         USRDB$INTERNAL                         1024
 AP-00000004@ EVAL$STR      EVAL_WHERE                              186


ARRAYS

    Address  Type  Name                                  Bytes  Dimensions

  2-00000000  I*4  USRDB$_CROSS_FID                        152  (38)
  2-00000098  I*4  USRDB$_CROSS_FLEN                       152  (38)
  2-000002F8  CHAR USRDB$_DEFAULT                          228  (38)
  2-0000023A  CHAR USRDB$_DMPSTR                           190  (38)
  2-00000000  CHAR USRDB$_IDENTS                           570  (38)

DBEVL$PARSE                                                     22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   5
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

RECORD ARRAYS

    Address   Name          Structure                             Bytes  Dimensions

  2-00000530  EVAL$REC      EVAL_WHERE                             7068  (38)


LABELS

    Address   Label       Address   Label       Address   Label       Address   Label       Address   Label       Address   Label   

  1-00000004  4000'     1-00000035  4050'     1-0000006E  4100'     1-0000009F  4150'         **      4200'     0-000001DA  9000    


FUNCTIONS AND SUBROUTINES REFERENCED

  Type  Name                              Type  Name                              Type  Name                            

   I*4  DBCRS$FIELD_IDENT                  I*4  DBEVL$COMPOSE                           DBNET$COMP_STRING               
   I*4  LIB$INDEX                               STR$TRIM                        


OPTIONS QUALIFIERS

  /CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /EXTEND_SOURCE  /F77  /NOG_FLOATING  /I4

                                                                22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   6
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0002    	OPTIONS/EXTEND
0003    	SUBROUTINE	DBUPD$RECORD( USRDB$REC, UPDSTR, ULEN, SKEY, UFID, UCNT )
0004    C
0005    C*************************************************************************
0006    C
0007    C **  PURPOSE:	UPDATE A DATABASE RECORD WITH NEW VALUES.
0008    C
0009    C*************************************************************************
0010    C
0011    C **  INCLUDE FILES FOR LQL FUNCTIONS.
0012    C
0013    	INCLUDE 'LIFE_DEV:DB_PARAMS.INC/NOLIST'
0158    	INCLUDE 'LIFE_DEV:DB_INTERN.INC/NOLIST'
0196    	INCLUDE 'LIFE_DEV:DB_FUNCS.INC/NOLIST'
0217    	INCLUDE 'LIFE_DEV:DB_CROSS.INC/NOLIST'
0338    	INCLUDE 'LIFE_DEV:DB_INDEX.INC/NOLIST'
0397    C
0398    C **  DEFINE LOCAL VARIABLES.
0399    C
0400    	CHARACTER	UPDSTR(SQL$_MAX_UPDATE)*(*), FINDKEY*80
0401    	INTEGER*4	UCNT, SKEY, LENKEY, SMATCH, UFID(SQL$_MAX_UPDATE),
0402         &			ULEN(SQL$_MAX_UPDATE)
0403    	LOGICAL		CHKFID
0404    C
0405    C **  INITIALIZE LOCAL VARIABLES.
0406    C
0407    	CHKFID = .FALSE.
0408    C
0409    	SMATCH = IDX$_FIDS(SKEY+1)
0410    C
0411    C **  GET THE FIRST FIELD TO BE UPDATED.
0412    C
0413    	ISTAT = USRDB$GET_FIELD( USRDB$REC, SMATCH, FINDKEY, LENKEY )
0414    C
0415    	DO MM = 1,UCNT
0416    C
0417    C **  CHECK THAT READ KEY IS NOT BEING UPDATED.  FLAG IF IT WAS.
0418    C
0419    		IF (UFID(MM) .EQ. SMATCH) CHKFID = .TRUE.
0420    C
0421    C **  UPDATE THE DATABASE FIELD.
0422    C
0423    		ISTAT = USRDB$PUT_FIELD( USRDB$REC, UFID(MM), UPDSTR(MM), ULEN(MM) )
0424    C
0425    	ENDDO
0426    C
0427    C **  UPDATE THE RECORD.
0428    C
0429    	ISTAT = USRDB$UPDATE_RECORD( USRDB$REC )
0430    C
0431    C **  IF THE READ KEY WAS UPDATED, THE RE-INITIALIZE THE READ.
0432    C
0433    	IF (CHKFID) THEN
0434    		ISTAT = USRDB$GET_INIT( USRDB$REC, SKEY, FINDKEY(1:LENKEY), USRDB$_MATCH_GE )
0435    	ELSE
0436    C

DBUPD$RECORD                                                    22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   7
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0437    C **  CONTINUE WITH NEXT READ OTHERWISE.
0438    C
0439    		ISTAT = USRDB$GET_RECORD( USRDB$REC )
0440    	ENDIF
0441    C
0442    C **  RETURN TO CALLING ROUTINE.
0443    C
0444    	RETURN
0445    	END




PROGRAM SECTIONS

    Name				 Bytes   Attributes

  0 $CODE                                  222   PIC CON REL LCL   SHR   EXE   RD NOWRT QUAD
  1 $PDATA                                   4   PIC CON REL LCL   SHR NOEXE   RD NOWRT QUAD
  2 $LOCAL                                2908   PIC CON REL LCL NOSHR NOEXE   RD   WRT QUAD

    Total Space Allocated                 3134


ENTRY POINTS

    Address  Type  Name          

  0-00000000       DBUPD$RECORD  


VARIABLES

    Address  Type  Name                                               Address  Type  Name                            

      **      L*4  CHKFID                                               **      I*4  DBCPY$COPY                      
      **      I*4  DBCRS$FIELD_IDENT                                    **      I*4  DBEVL$COMPOSE                   
      **      I*4  DBEVL$DEF_SORT                                       **      I*4  DBEVL$LOGICAL                   
      **      I*4  DBEVL$PARSE                                          **      I*4  DBEVL$SELECT                    
      **      I*4  DBEVL$SORT                                           **      I*4  DBEVL$UPDATE                    
      **      I*4  DBEVL$WHERE                                      2-00000A43  CHAR FINDKEY                         
      **      I*4  ISTAT                                            2-00000A94  I*4  LENKEY                          
      **      I*4  MM                                              AP-00000010@ I*4  SKEY                            
  2-00000A98  I*4  SMATCH                                          AP-00000018@ I*4  UCNT                            
      **      I*4  USRDB$CLEAR_RECORD                                   **      I*4  USRDB$DELETE_RECORD             
      **      I*4  USRDB$GET_DUMP                                       **      I*4  USRDB$LOCATE                    
      **      I*4  USRDB$PUT_DUMP                                       **      I*4  USRDB$PUT_RECORD                
 AP-00000004@ CHAR USRDB$REC                                            **      I*4  USRDB$SQL                       


RECORDS

    Address   Name          Structure                             Bytes

  2-00000198  DBINT         USRDB$INTERNAL                         1024

DBUPD$RECORD                                                    22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   8
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

ARRAYS

    Address  Type  Name                                  Bytes  Dimensions

  2-00000164  I*4  IDX$_FIDS                                52  (13)
  2-000003DC  CHAR IDX$_NAME                               195  (13)
  2-00000130  I*4  IDX$_NMBR                                52  (13)
  2-0000049F  CHAR MTCH$_NAME                               12  (6)
 AP-00000014@ I*4  UFID                                     76  (19)
 AP-0000000C@ I*4  ULEN                                     76  (19)
 AP-00000008@ CHAR UPDSTR                                   **  (19)
  2-00000000  I*4  USRDB$_CROSS_FID                        152  (38)
  2-00000098  I*4  USRDB$_CROSS_FLEN                       152  (38)
  2-000002F8  CHAR USRDB$_DEFAULT                          228  (38)
  2-0000023A  CHAR USRDB$_DMPSTR                           190  (38)
  2-00000000  CHAR USRDB$_IDENTS                           570  (38)


FUNCTIONS AND SUBROUTINES REFERENCED

  Type  Name                              Type  Name                              Type  Name                            

   I*4  USRDB$GET_FIELD                    I*4  USRDB$GET_INIT                     I*4  USRDB$GET_RECORD                
   I*4  USRDB$PUT_FIELD                    I*4  USRDB$UPDATE_RECORD             


OPTIONS QUALIFIERS

  /CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /EXTEND_SOURCE  /F77  /NOG_FLOATING  /I4

                                                                22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page   9
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0002    	OPTIONS/EXTEND
0003    	FUNCTION DBEVL$SORT( EVAL$REC, WSCN, SKEY, SSTRING, SMATCH )
0004    C
0005    C*************************************************************************
0006    C
0007    C **  PURPOSE:  EVALUATE THE WHERE CLAUSES FOR SORT FIELD TO BE USED.
0008    C
0009    C*************************************************************************
0010    C
0011    C **  INCLUDE FILE FOR WHERE EVALUATIONS.
0012    C
0013    	INCLUDE 'LIFE_DEV:DB_PARAMS.INC/NOLIST'
0158    	INCLUDE 'LIFE_DEV:DB_FUNCS.INC/NOLIST'
0179    	INCLUDE 'LIFE_DEV:DB_CROSS.INC/NOLIST'
0300    	INCLUDE 'LIFE_DEV:DB_INDEX.INC/NOLIST'
0359    	INCLUDE	'LIFE_DEV:DB_WHERE.INC/NOLIST'
0383    C
0384    C **  DECLARE LOCAL VARIABLES.
0385    C
0386    	CHARACTER	SSTRING*80
0387    	INTEGER*4	SKEY, SMATCH, TPNT, EPNT, WSCN
0388    C
0389    C **  INITIALIZE RETURN FUNCTION TO FAILURE
0390    C
0391    	DBEVL$SORT = USRDB$_FAILURE
0392    C
0393    C **  INITIALIZE LOCAL VARIABLES.
0394    C
0395    	TPNT = USRDB$_NUM_FIELDS
0396    C
0397    	SSTRING = ' '
0398    	SKEY = USRDB$_KEY_USER_IDENT
0399    	SMATCH = USRDB$_MATCH_NA
0400    C
0401    C **  BEGIN EVALUATION LOOP.
0402    C
0403    	DO II = 1,WSCN
0404    C
0405    C **  IF ANY OF THE FOLLOWING FLAGS HAVE BEEN DEFINED, THEN WE CANNOT SORT.
0406    C
0407    		IF (	(EVAL$REC(II).QUAL .EQ. 'N') .OR.
0408         &			(EVAL$REC(II).FUNC .EQ. 'O') .OR.
0409         &			(EVAL$REC(II).FUNC .EQ. 'V') .OR.
0410         &			(EVAL$REC(II).FUNC .EQ. 'N') .OR.
0411         &			(EVAL$REC(II).FUNC .EQ. 'R') .OR.
0412         &			(EVAL$REC(II).FUNC .EQ. 'E') .OR.
0413         &			(EVAL$REC(II).FUNC .EQ. 'Q')) GOTO 9000
0414    C
0415    C **  THESE POINTERS AND VALUES INVALIDATE A SORT ON THE CURRENT FIELD.
0416    C
0417    		IF (	(EVAL$REC(II).STPNT .NE. 1) .OR.
0418         &			(EVAL$REC(II).MPNTR .EQ. 2) .OR.
0419         &			(EVAL$REC(II).MPNTR .EQ. 4)) GOTO 2000
0420    C
0421    C **  FIND THE BEST SORT BASED UPON PRIORITY ESTABLISHED IN THE PARAMETER FILE.
0422    C

DBEVL$SORT                                                      22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  10
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0423    		DO JJ = 1,USRDB$_NUM_INDEX
0424    C
0425    			IF (EVAL$REC(II).FID .EQ. IDX$_FIDS(JJ) .AND. (JJ .LT. TPNT)) THEN
0426    				TPNT = JJ
0427    				EPNT = II
0428    			ENDIF
0429    C
0430    		ENDDO
0431    C
0432    2000		CONTINUE
0433    C
0434    	ENDDO
0435    C
0436    C **  WE HAVE A SORT FIELD, EVALUATION WAS A SUCCESS.
0437    C
0438    	DBEVL$SORT = USRDB$_SUCCESS
0439    C
0440    C **  NO FIELD WAS FOUND FOR EVALUATION.
0441    C
0442    	IF (TPNT .EQ. USRDB$_NUM_FIELDS) GOTO 9000
0443    C
0444    C **  PLACE FID AND STRING INTO THE SORT VARIABLES.
0445    C
0446    	SKEY = IDX$_NMBR(TPNT)
0447    	SSTRING = EVAL$REC(EPNT).MATCH
0448    C
0449    C **  DEFINE THE MATCHING CHARACTERISTICS OF THE SORT TO BE PERFORMED.
0450    C
0451    	IF (EVAL$REC(EPNT).MPNTR .EQ. 0) THEN
0452    C
0453    		SMATCH = USRDB$_MATCH_EQ
0454    C
0455    	ELSE
0456    C
0457    		SMATCH = USRDB$_MATCH_GE
0458    C
0459    	ENDIF
0460    C
0461    C **  RETURN TO THE CALLING ROUTINE.
0462    C
0463    9000	RETURN
0464    	END

DBEVL$SORT                                                      22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  11
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

PROGRAM SECTIONS

    Name				 Bytes   Attributes

  0 $CODE                                  388   PIC CON REL LCL   SHR   EXE   RD NOWRT QUAD
  2 $LOCAL                                1832   PIC CON REL LCL NOSHR NOEXE   RD   WRT QUAD

    Total Space Allocated                 2220


ENTRY POINTS

    Address  Type  Name          

  0-00000000  I*4  DBEVL$SORT    


VARIABLES

    Address  Type  Name                                               Address  Type  Name                            

      **      I*4  DBCPY$COPY                                           **      I*4  DBCRS$FIELD_IDENT               
      **      I*4  DBEVL$COMPOSE                                        **      I*4  DBEVL$DEF_SORT                  
      **      I*4  DBEVL$LOGICAL                                        **      I*4  DBEVL$PARSE                     
      **      I*4  DBEVL$SELECT                                         **      I*4  DBEVL$UPDATE                    
      **      I*4  DBEVL$WHERE                                      2-00000704  I*4  EPNT                            
      **      I*4  II                                                   **      I*4  JJ                              
 AP-0000000C@ I*4  SKEY                                            AP-00000014@ I*4  SMATCH                          
 AP-00000010@ CHAR SSTRING                                              **      I*4  TPNT                            
      **      I*4  USRDB$CLEAR_RECORD                                   **      I*4  USRDB$DELETE_RECORD             
      **      I*4  USRDB$GET_DUMP                                       **      I*4  USRDB$GET_FIELD                 
      **      I*4  USRDB$GET_INIT                                       **      I*4  USRDB$GET_RECORD                
      **      I*4  USRDB$LOCATE                                         **      I*4  USRDB$PUT_DUMP                  
      **      I*4  USRDB$PUT_FIELD                                      **      I*4  USRDB$PUT_RECORD                
      **      I*4  USRDB$SQL                                            **      I*4  USRDB$UPDATE_RECORD             
 AP-00000008@ I*4  WSCN                                           


RECORDS

    Address   Name          Structure           Bytes

  2-00000198  EVAL$STR      EVAL_WHERE            186


ARRAYS

    Address  Type  Name                                  Bytes  Dimensions

  2-00000164  I*4  IDX$_FIDS                                52  (13)
  2-000003DC  CHAR IDX$_NAME                               195  (13)
  2-00000130  I*4  IDX$_NMBR                                52  (13)
  2-0000049F  CHAR MTCH$_NAME                               12  (6)
  2-00000000  I*4  USRDB$_CROSS_FID                        152  (38)
  2-00000098  I*4  USRDB$_CROSS_FLEN                       152  (38)
  2-000002F8  CHAR USRDB$_DEFAULT                          228  (38)
  2-0000023A  CHAR USRDB$_DMPSTR                           190  (38)

DBEVL$SORT                                                      22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  12
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

  2-00000000  CHAR USRDB$_IDENTS                           570  (38)


RECORD ARRAYS

    Address   Name          Structure           Bytes  Dimensions

 AP-00000004@ EVAL$REC      EVAL_WHERE           7068  (38)


LABELS

    Address   Label       Address   Label   

  0-00000130  2000      0-0000017C  9000    


OPTIONS QUALIFIERS

  /CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /EXTEND_SOURCE  /F77  /NOG_FLOATING  /I4

                                                                22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  13
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0002    	OPTIONS/EXTEND
0003    	FUNCTION DBEVL$DEF_SORT( SRTSTR, SKEY, SSTRING, SMATCH )
0004    C
0005    C*************************************************************************
0006    C
0007    C **  PURPOSE:  A SORT DEFINITION WAS DECLARED BY THE SCRIPT, EVALUATE.
0008    C
0009    C*************************************************************************
0010    C
0011    C **  INCLUDE FILE FOR WHERE EVALUATIONS.
0012    C
0013    	INCLUDE 'LIFE_DEV:DB_PARAMS.INC/NOLIST'
0158    	INCLUDE 'LIFE_DEV:DB_FUNCS.INC/NOLIST'
0179    	INCLUDE 'LIFE_DEV:DB_CROSS.INC/NOLIST'
0300    	INCLUDE 'LIFE_DEV:DB_INDEX.INC/NOLIST'
0359    C
0360    C **  DECLARE THE LOCAL VARIABLES.
0361    C
0362    	CHARACTER	SSTRING*80, SRTSTR*(*)
0363    	INTEGER*4	SKEY, SMATCH, FNDDOT, EFLD, SLEN, FNDQT
0364    C
0365    C **  DEFINE THE FUNCTION RETURN VALUE.
0366    C
0367    	DBEVL$DEF_SORT = USRDB$_FAILURE
0368    C
0369    C **  MAKE SURE A SORT STRING IS AVAILABLE.
0370    C
0371    	CALL STR$TRIM( SRTSTR, SRTSTR, SLEN )
0372    C
0373    C **  COMPRESS THE STRING TO MINIMUM CHARACTERS.
0374    C
0375    	CALL DBNET$COMP_STRING( SRTSTR, SLEN )
0376    C
0377    C **  IF NO CHARACTERS LEFT, THE EXIT ROUTINE.
0378    C
0379    	IF (SLEN .EQ. 0) THEN
0380    		WRITE(6,750)
0381    		GOTO 9000
0382    	ENDIF
0383    C
0384    C **  DEFAULT IS BY PRIMARY KEY, AND ALL RECORDS.
0385    C
0386    	SKEY = USRDB$_KEY_USER_IDENT
0387    	SSTRING = ' '
0388    	SMATCH = USRDB$_MATCH_NA
0389    C
0390    C **  FIND THE BOOLEAN OPERATION.
0391    C
0392    	FNDDOT = INDEX( SRTSTR, '.')
0393    	EFLD = FNDDOT - 1
0394    C
0395    C **  NO BOOLEAN OPERATION DEFINED.
0396    C
0397    	IF (FNDDOT .EQ. 0) EFLD = SLEN
0398    C
0399    C **  DETERMINE THE FIELD TO BE SORTED ON.

DBEVL$DEF_SORT                                                  22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  14
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0400    C
0401    	DO II = 1,USRDB$_NUM_INDEX
0402    		IF (SRTSTR(1:EFLD) .EQ. IDX$_NAME(II)) GOTO 4000
0403    	ENDDO
0404    C
0405    C **  INFORM THAT THE FIELD DEFINED WAS NOT LEGAL.
0406    C
0407    	WRITE(6,1000) SRTSTR(1:EFLD)
0408    C
0409    C **  CAN'T EVALUATE THE SORT.
0410    C
0411    	GOTO 9000
0412    C
0413    C **  DEFINE THE FID POINTER FOR THE SORT MATCH.
0414    C
0415    4000	SKEY = II - 1
0416    C
0417    C **  DEFINE THE MATCH FUNCTION TO BE PERFORMED.
0418    C
0419    	SMATCH = USRDB$_MATCH_GE
0420    C
0421    C **  SINCE NO BOOLEAN OPERATION TO BE PERFORMED, WE EXIT SUCCESSFULLY.
0422    C
0423    	IF (FNDDOT .EQ. 0) THEN
0424    		DBEVL$DEF_SORT = USRDB$_SUCCESS
0425    		GOTO 9000
0426    	ENDIF
0427    C
0428    C **  DEFINE THE LIMITS OF THE BOOLEAN EXPRESSION.
0429    C
0430    	FNDDOT = FNDDOT + 1
0431    	NXTPNT = FNDDOT + 1
0432    C
0433    C **  FIND WHICH BOOLEAN EXPRESSION IS USED.
0434    C
0435    	DO II = 1,USRDB$_NUM_MATCH
0436    		IF (SRTSTR(FNDDOT:NXTPNT) .EQ. MTCH$_NAME(II)) GOTO 5000
0437    	ENDDO
0438    C
0439    C **  NO LEGAL BOOLEAN EXPRESSION DEFINED, EXIT WITH ERROR MESSAGE.
0440    C
0441    	WRITE(6,1250) SRTSTR(FNDDOT:NXTPNT)
0442    C
0443    	GOTO 9000
0444    C
0445    C **  DEFINE THE MATCH POINTER.
0446    C
0447    5000	SMATCH = II - 1
0448    C
0449    C **  DEFINE THE LOCATION AFTER THE BOOLEAN EXPRESSION
0450    C
0451    	NXTPNT = NXTPNT + 2
0452    C
0453    C **  COMPRESS THE REMAINING PART OF THE STRING.
0454    C
0455    	CALL STR$TRIM( SSTRING, SRTSTR(NXTPNT:SLEN), IX )
0456    C

DBEVL$DEF_SORT                                                  22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  15
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0457    C **  IF THE EXPRESSION IS OF ZERO LENGTH, WE SET THE SEARCH STRING TO NULL
0458    C **  EXIT WITH A SUCCESS FLAG.
0459    C
0460    	IF (IX .EQ. 0) THEN
0461    		SSTRING = ' '
0462    		DBEVL$DEF_SORT = USRDB$_SUCCESS
0463    		GOTO 9000
0464    	ENDIF
0465    C
0466    C **  FIND THE FIRST QUOTE MARK OF THE STRING.
0467    C
0468    	FNDQT = INDEX(SSTRING,'"')
0469    C
0470    C **  IF NO QUOTE FOUND, THEN ABORT, FAILURE CONDITION.
0471    C
0472    	IF ((FNDQT .EQ. 0) .OR. (FNDQT .GE. IX)) GOTO 9000
0473    C
0474    C **  TRIM DOWN THE REMAINDER OF THE STRING.
0475    C
0476    	CALL STR$TRIM( SSTRING, SSTRING((FNDQT+1):IX), IX )
0477    C
0478    C **  FIND THE LAST QUOTE.
0479    C
0480    	FNDQT = INDEX(SSTRING,'"')
0481    C
0482    C **  DEFINE LENGTH OF THE QUOTED STRING.
0483    C **  IF NO SECOND QUOTE, THEN NO SWEAT.
0484    C
0485    	SLEN = IX
0486    	IF (FNDQT .GE. 1) SLEN = FNDQT - 1
0487    C
0488    C **  ALL REMAINING OPERATIONS RESULT IN A SUCCESSFUL EVALUATION REGARDLESS.
0489    C
0490    	DBEVL$DEF_SORT = USRDB$_SUCCESS
0491    C
0492    C **  IF NO QUOTE FOUND, THEN CLEAR SEARCH STRING AND RETURN.
0493    C
0494    	IF (FNDQT .EQ. 0) THEN
0495    		SSTRING = ' '
0496    		GOTO 9000
0497    	ENDIF
0498    C
0499    C **  DEFINE THE SORT SEARCH STRING.
0500    C
0501    	SSTRING = SSTRING(1:SLEN)//' '
0502    C
0503    C **  RETURN TO CALLING ROUTINE.
0504    C
0505    9000	RETURN
0506    C
0507    750	FORMAT(' LQL%ERROR.SORT:  Invalid SORT Syntax Provided, Cannot Interpret Command.')
0508    1000	FORMAT(' LQL%ERROR.SORT:  Invalid SORT Syntax Provided, Field ID: ',A15)
0509    1250	FORMAT(' LQL%ERROR.SORT:  Invalid SORT Syntax Provided, Bad Qualifier: ',A2)
0510    C
0511    	END

DBEVL$DEF_SORT                                                  22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  16
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

PROGRAM SECTIONS

    Name				 Bytes   Attributes

  0 $CODE                                  460   PIC CON REL LCL   SHR   EXE   RD NOWRT QUAD
  1 $PDATA                                 211   PIC CON REL LCL   SHR NOEXE   RD NOWRT QUAD
  2 $LOCAL                                1784   PIC CON REL LCL NOSHR NOEXE   RD   WRT QUAD

    Total Space Allocated                 2455


ENTRY POINTS

    Address  Type  Name                            

  0-00000000  I*4  DBEVL$DEF_SORT                  


VARIABLES

    Address  Type  Name                                               Address  Type  Name                            

      **      I*4  DBCPY$COPY                                           **      I*4  DBCRS$FIELD_IDENT               
      **      I*4  DBEVL$COMPOSE                                        **      I*4  DBEVL$LOGICAL                   
      **      I*4  DBEVL$PARSE                                          **      I*4  DBEVL$SELECT                    
      **      I*4  DBEVL$SORT                                           **      I*4  DBEVL$UPDATE                    
      **      I*4  DBEVL$WHERE                                          **      I*4  EFLD                            
      **      I*4  FNDDOT                                               **      I*4  FNDQT                           
      **      I*4  II                                               2-0000064C  I*4  IX                              
      **      I*4  NXTPNT                                          AP-00000008@ I*4  SKEY                            
  2-00000648  I*4  SLEN                                            AP-00000010@ I*4  SMATCH                          
 AP-00000004@ CHAR SRTSTR                                          AP-0000000C@ CHAR SSTRING                         
      **      I*4  USRDB$CLEAR_RECORD                                   **      I*4  USRDB$DELETE_RECORD             
      **      I*4  USRDB$GET_DUMP                                       **      I*4  USRDB$GET_FIELD                 
      **      I*4  USRDB$GET_INIT                                       **      I*4  USRDB$GET_RECORD                
      **      I*4  USRDB$LOCATE                                         **      I*4  USRDB$PUT_DUMP                  
      **      I*4  USRDB$PUT_FIELD                                      **      I*4  USRDB$PUT_RECORD                
      **      I*4  USRDB$SQL                                            **      I*4  USRDB$UPDATE_RECORD             


ARRAYS

    Address  Type  Name                                  Bytes  Dimensions

  2-00000164  I*4  IDX$_FIDS                                52  (13)
  2-00000574  CHAR IDX$_NAME                               195  (13)
  2-00000130  I*4  IDX$_NMBR                                52  (13)
  2-00000637  CHAR MTCH$_NAME                               12  (6)
  2-00000000  I*4  USRDB$_CROSS_FID                        152  (38)
  2-00000098  I*4  USRDB$_CROSS_FLEN                       152  (38)
  2-000002F8  CHAR USRDB$_DEFAULT                          228  (38)
  2-0000023A  CHAR USRDB$_DMPSTR                           190  (38)
  2-00000000  CHAR USRDB$_IDENTS                           570  (38)

DBEVL$DEF_SORT                                                  22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  17
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

LABELS

    Address   Label       Address   Label       Address   Label       Address   Label       Address   Label       Address   Label   

  1-00000004  750'      1-00000050  1000'     1-0000008F  1250'     0-000000B8  4000      0-00000120  5000      0-000001C7  9000    


FUNCTIONS AND SUBROUTINES REFERENCED

  Type  Name                              Type  Name                              Type  Name                            

        DBNET$COMP_STRING                  I*4  LIB$INDEX                               STR$TRIM                        


OPTIONS QUALIFIERS

  /CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /EXTEND_SOURCE  /F77  /NOG_FLOATING  /I4

                                                                22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  18
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0002    	OPTIONS/EXTEND
0003    	FUNCTION	DBEVL$UPDATE( UPDSTR, UFID, UCNT, UPDVAL, UPDLEN )
0004    C
0005    C*************************************************************************
0006    C
0007    C **  PURPOSE:  EVALUATE AN UPDATE COMMAND.
0008    C
0009    C*************************************************************************
0010    C
0011    C **  INCLUDE FILE FOR WHERE EVALUATIONS.
0012    C
0013    	INCLUDE 'LIFE_DEV:DB_PARAMS.INC/NOLIST'
0158    	INCLUDE 'LIFE_DEV:DB_FUNCS.INC/NOLIST'
0179    	INCLUDE 'LIFE_DEV:DB_CROSS.INC/NOLIST'
0300    C
0301    C **  DEFINE LOCAL VARIABLES.
0302    C
0303    	CHARACTER	UPDVAL(SQL$_MAX_UPDATE)*80, UPDSTR*(*), FIELD_NAME*15, LOCSTR*255
0304    	INTEGER*4	UCNT, UFID(SQL$_MAX_UPDATE), UPNT, ULEN, IX, FNDEQ, 
0305         &			FNDQT1, FNDQT2, CLEN, UPDLEN(SQL$_MAX_UPDATE), TPNT
0306    C
0307    C **  DEFINE VALUE OF FUNCTION.
0308    C
0309    	DBEVL$UPDATE = USRDB$_FAILURE
0310    C
0311    C **  GET LENGTH OF THE STRING PASSED.
0312    C
0313    	CALL STR$TRIM( LOCSTR, UPDSTR, CLEN )
0314    C
0315    C **  COMPRESS THE STRING PASSED.
0316    C
0317    	ULEN = CLEN
0318    	CALL DBNET$COMP_STRING( UPDSTR, ULEN )
0319    C
0320    C **  IF NO STRING PASSED, THEN ABORT UPDATE EVALUATION.
0321    C
0322    	IF (ULEN .LE. 0) THEN
0323    		WRITE(6,750)
0324    		GOTO 9000
0325    	ENDIF
0326    C
0327    C **  FIND THE EQUAL SIGN FOR PARSING THE STRING.
0328    C
0329    	FNDEQ = INDEX(UPDSTR, '=') - 1
0330    C
0331    C **  IF NO EQUAL SIGN THEN ABORT UPDATE EVALUATION.
0332    C
0333    	IF (FNDEQ .LE. 0) THEN
0334    		WRITE(6,750)
0335    		GOTO 9000
0336    	ENDIF
0337    C
0338    C **  DEFINE THE FIELD TO BE UPDATED.
0339    C
0340    	FIELD_NAME = UPDSTR(1:FNDEQ)
0341    C

DBEVL$UPDATE                                                    22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  19
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0342    C **  CHECK IF FIELD DEFINED IS LEGAL, IF NOT THEN ABORT EVAULATION.
0343    C
0344    	IF (DBCRS$FIELD_IDENT( FIELD_NAME, UPNT ) .EQ. USRDB$_FAILURE) THEN
0345    		WRITE(6,1000) FIELD_NAME
0346    		GOTO 9000
0347    	ENDIF
0348    C
0349    C **  ADD FID OF FIELD TO BE UPDATED TO ARRAY.
0350    C
0351    	TPNT = UCNT + 1
0352    	UFID(TPNT) = USRDB$_CROSS_FID( UPNT )
0353    C
0354    C **  IF FIELD TO BE UPDATED IS THE PRIMARY KEY, THEN WE ABORT THE FUNCTION.
0355    C
0356    	IF (UFID(TPNT) .EQ. USRDB$_FID_USER_IDENT) THEN
0357    		WRITE(6,1250)
0358    		GOTO 9000
0359    	ENDIF
0360    C
0361    C **  FIND THE STRING TO BE PLACED INTO THE FIELD FOR UPDATE.
0362    C
0363    	FNDQT1 = INDEX(LOCSTR,'"') + 1
0364    C
0365    C **  IF NO QUOTE INDICATED, THEN WE ABORT THE FUNCTION.
0366    C
0367    	IF ((FNDQT1 .LE. 1) .OR. (FNDQT1 .GT. CLEN)) THEN
0368    		WRITE(6,1500)
0369    		GOTO 9000
0370    	ENDIF
0371    C
0372    C **  TRIM DOWN THE UPDATE VALUE.
0373    C
0374    	CALL STR$TRIM( LOCSTR, LOCSTR(FNDQT1:CLEN), CLEN )
0375    C
0376    C **  ALL REMAINING OPERATIONS RESULT IN A SUCCESSFUL UPDATE EVALUATION.
0377    C
0378    	DBEVL$UPDATE = USRDB$_SUCCESS
0379    C
0380    C **  FIND THE LAST QUOTE, NOT REQUIRED.
0381    C
0382    	FNDQT2 = INDEX(LOCSTR,'"') - 1
0383    C
0384    C **  WE ACTUALLY UPDATE THE COUNT OF THE UPDATE FIELDS.
0385    C
0386    	UCNT = TPNT
0387    C
0388    C **  IF THE SECOND QUOTE RESULTED IN A NULL SPECIFICATION, THEN INDICATE
0389    C **  THAT THE FIELD IS TO BE A NULL VALUE.
0390    C
0391    	IF (FNDQT2 .EQ. 0) THEN
0392    		WRITE(6,2000)
0393    		UPDVAL(UCNT) = ' '
0394    		UPDLEN(UCNT) = 1
0395    	ELSE
0396    C
0397    C **  OTHERWISE THE QUOTE DOES NOT EXIST, NO SWEAT, JUST USE LENGTH OF STRING.
0398    C

DBEVL$UPDATE                                                    22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  20
                                                                22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

0399    		IF (FNDQT2 .LT. 0) FNDQT2 = CLEN
0400    C
0401    C **  INDICATE THE UPDATE VALUE AND ITS LENGTH.
0402    C
0403    		UPDVAL(UCNT) = LOCSTR(1:FNDQT2)
0404    		UPDLEN(UCNT) = FNDQT2
0405    	ENDIF
0406    C
0407    C **  RETURN TO CALLING ROUTINE.
0408    C
0409    9000	RETURN
0410    C
0411    750	FORMAT(' LQL%ERROR.UPDATE:  Invalid UPDATE Syntax Provided, Cannot Interpret Command.')
0412    1000	FORMAT(' LQL%ERROR.UPDATE:  Invalid UPDATE Syntax Provided, Field ID: ',A15)
0413    1250	FORMAT(' LQL%ERROR.UPDATE:  Invalid UPDATE Syntax Provided, Cannot Update USER_IDENT.')
0414    1500	FORMAT(' LQL%ERROR.UPDATE:  Invalid UPDATE Syntax Provided, No New Value.')
0415    2000	FORMAT(' LQL%WARNING.UPDATE:  No Value Provided, Assuming Null For Update.')
0416    C
0417    	END




PROGRAM SECTIONS

    Name				 Bytes   Attributes

  0 $CODE                                  469   PIC CON REL LCL   SHR   EXE   RD NOWRT QUAD
  1 $PDATA                                 368   PIC CON REL LCL   SHR NOEXE   RD NOWRT QUAD
  2 $LOCAL                                1800   PIC CON REL LCL NOSHR NOEXE   RD   WRT QUAD

    Total Space Allocated                 2637


ENTRY POINTS

    Address  Type  Name          

  0-00000000  I*4  DBEVL$UPDATE  


VARIABLES

    Address  Type  Name                                               Address  Type  Name                            

  2-00000628  I*4  CLEN                                                 **      I*4  DBCPY$COPY                      
      **      I*4  DBEVL$COMPOSE                                        **      I*4  DBEVL$DEF_SORT                  
      **      I*4  DBEVL$LOGICAL                                        **      I*4  DBEVL$PARSE                     
      **      I*4  DBEVL$SELECT                                         **      I*4  DBEVL$SORT                      
      **      I*4  DBEVL$WHERE                                      2-0000050C  CHAR FIELD_NAME                      
      **      I*4  FNDEQ                                                **      I*4  FNDQT1                          
      **      I*4  FNDQT2                                               **      I*4  IX                              
  2-0000051B  CHAR LOCSTR                                               **      I*4  TPNT                            
 AP-0000000C@ I*4  UCNT                                             2-00000624  I*4  ULEN                            
 AP-00000004@ CHAR UPDSTR                                           2-00000620  I*4  UPNT                            
      **      I*4  USRDB$CLEAR_RECORD                                   **      I*4  USRDB$DELETE_RECORD             
      **      I*4  USRDB$GET_DUMP                                       **      I*4  USRDB$GET_FIELD                 

DBEVL$UPDATE                                                    22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  21
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

      **      I*4  USRDB$GET_INIT                                       **      I*4  USRDB$GET_RECORD                
      **      I*4  USRDB$LOCATE                                         **      I*4  USRDB$PUT_DUMP                  
      **      I*4  USRDB$PUT_FIELD                                      **      I*4  USRDB$PUT_RECORD                
      **      I*4  USRDB$SQL                                            **      I*4  USRDB$UPDATE_RECORD             


ARRAYS

    Address  Type  Name                                  Bytes  Dimensions

 AP-00000008@ I*4  UFID                                     76  (19)
 AP-00000014@ I*4  UPDLEN                                   76  (19)
 AP-00000010@ CHAR UPDVAL                                 1520  (19)
  2-00000000  I*4  USRDB$_CROSS_FID                        152  (38)
  2-00000098  I*4  USRDB$_CROSS_FLEN                       152  (38)
  2-000002F8  CHAR USRDB$_DEFAULT                          228  (38)
  2-0000023A  CHAR USRDB$_DMPSTR                           190  (38)
  2-00000000  CHAR USRDB$_IDENTS                           570  (38)


LABELS

    Address   Label       Address   Label       Address   Label       Address   Label       Address   Label       Address   Label   

  1-00000004  750'      1-00000054  1000'     1-00000097  1250'     1-000000E7  1500'     1-0000012B  2000'     0-000001D0  9000    


FUNCTIONS AND SUBROUTINES REFERENCED

  Type  Name                              Type  Name                              Type  Name                            

   I*4  DBCRS$FIELD_IDENT                       DBNET$COMP_STRING                  I*4  LIB$INDEX                       
        STR$TRIM                        


OPTIONS QUALIFIERS

  /CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /EXTEND_SOURCE  /F77  /NOG_FLOATING  /I4


COMMAND QUALIFIERS

  FOR/LIST/SHOW LQL_DRVR3

  /CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /DEBUG=(NOSYMBOLS,TRACEBACK)
  /DESIGN=(NOCOMMENTS,NOPLACEHOLDERS)
  /SHOW=(DICTIONARY,INCLUDE,MAP,PREPROCESSOR,SINGLE)
  /STANDARD=(NOSEMANTIC,NOSOURCE_FORM,NOSYNTAX)
  /WARNINGS=(NODECLARATIONS,GENERAL,NOULTRIX,NOVAXELN)
  /CONTINUATIONS=19  /NOCROSS_REFERENCE  /NOD_LINES  /NOEXTEND_SOURCE
  /F77  /NOG_FLOATING  /I4  /NOMACHINE_CODE  /OPTIMIZE  /NOPARALLEL
  /NOANALYSIS_DATA
  /NODIAGNOSTICS
  /LIST=LIB4:[LIFENET.USERDB.CURRENT_SOURCE]LQL_DRVR3.LIS;3                                                 
  /OBJECT=LIB4:[LIFENET.USERDB.CURRENT_SOURCE]LQL_DRVR3.OBJ;3                                                 

DBEVL$UPDATE                                                    22-Mar-1991 18:19:30	VAX FORTRAN V5.5-98                 Page  22
01                                                              22-Mar-1991 17:59:31	LQL_DRVR3.FOR;1                             

COMPILATION STATISTICS

  Run Time:           8.91 seconds
  Elapsed Time:       13.03 seconds
  Page Faults:        876
  Dynamic Memory:     672 pages
