$ RDB$SAVE_VERIFY := 'F$VERIFY(0)' $ IF "''RDB$VERIFY'".NES."" THEN SET VERIFY $! Copyright © 1995, 2005, Oracle Corporation. All Rights Reserved. $! This command procedure sets up the necessary symbols and logical names needed to run a particular version of Rdb. $! P1 = (REQUIRED) $! version (ie: S for STANDARD, 7.2 for MULTIVERSION 7.2) or (JS for Japanese STANDARD J7.0 for Japanese Multiversion 7.0) $! or RESET to reset SQL symbols $! or REMOVE to remove Oracle Rdb logicals $! P2 = (OPTIONAL) $! Logical name table switch (/PROCESS, /GROUP, /JOB, or /SYSTEM) default is /PROCESS $! or REMOTE to set only DISPATCH logicals for fast remote access $! P3 = (OPTIONAL) $! Date compatibility switch (see Release Notes for 4.1 for more $! information. Options are DATE or NODATE with DATE as the default. $! This can go in P2 if a logical name table switch isn't used. $! NOSYSTEM to suppress the display of SYSTEM environment or SQLSRV with P2 REMOTE to set RDBVMS$IDENT $ ON CONTROL_Y THEN GOTO RDB$_RESET $ ON WARNING THEN GOTO RDB$_WARNING $ SET SYMBOL/VERB/SCOPE=(NOGLOBAL, NOLOCAL) $ RESET_FLAG = 0 $ P1_COUNT = 0 $ WO = "WRITE SYS$OUTPUT $ IF F$TRNLNM("JSY$SYSTEM").NES."" !Check for Japanese System $ THEN MSG1 = "(Jn.n,n.n) or JS,S" $ ELSE MSG1 = "(n.n) or S" $ ENDIF $ P1 = F$EDIT(P1,"UPCASE") $ P2 = F$EDIT(P2,"UPCASE") $ P3 = F$EDIT(P3,"UPCASE") $ IF P1.EQS."RESET" $ THEN IF F$TRNLNM("RDMS$RMU_VARIANT").NES."" $ THEN RMU :== 'F$TRNLNM("RDMS$RMU_VARIANT") $ ELSE IF F$TYPE(RMU).NES."" THEN DELETE/SYMBOL/GLOBAL/NOLOG RMU $ ENDIF $ SQL$ == "$SQL$" $ SQL$PRE == "$SQL$PRE" $ SQL$MOD == "$SQL$MOD" $ RDML == "$RDML" $ RDO == "$RDO" $ RDBPRE == "$RDBPRE" $ GOTO RDB$EXIT_SUCCESS $ ENDIF $ ASK_P1: $ IF F$MODE().EQS."BATCH" $ THEN IF P1.EQS."" $ THEN WO " $ WO "%RDB-E-SETVER No version parameter passed" $ WO " $ GOTO RDB$EXIT_FAILURE $ ENDIF $ ELSE IF P1.EQS."" THEN INQUIRE P1 "Enter MULTIVERSION version number ''MSG1' (for STANDARD) " $ IF P1.EQS."" $ THEN IF P1_COUNT.EQ.10 $ THEN WO "%RDB-E-SETVER No version parameter passed" $ GOTO RDB$EXIT_FAILURE $ ENDIF $ P1_COUNT = P1_COUNT + 1 $ GOTO ASK_P1 $ ENDIF $ ENDIF $ JSETVER = "" $ USE_JMSG = "" $ REAL_P1 = P1 $ IF P1.NES."REMOVE" $ THEN IF P1.EQS."S".OR.P1.EQS."JS" $ THEN VAR = "" $ IF P1.EQS."JS" $ THEN GOSUB CHECK_FOR_JVMS $ JSETVER = "STD" $ USE_JMSG = "J" $ ENDIF $ P1 = "S" $ ELSE IF F$EXTRACT(0,1,P1).EQS."J" $ THEN GOSUB CHECK_FOR_JVMS $ MAJ_POS = 1 $ MIN_POS = 2 $ JSETVER = "MV" $ USE_JMSG = "J" $ ELSE MAJ_POS = 0 $ MIN_POS = 1 $ ENDIF $ IF F$LOCATE(".",P1) .EQ. F$LENGTH(P1) THEN P1 = F$EXTRACT(MAJ_POS,1,P1) + "." + F$EXTRACT(MIN_POS,1,P1) $ MAJ_VER = F$EXTRACT(F$LOCATE(".",P1)-1,1,P1) $ MIN_VER = F$EXTRACT(F$LOCATE(".",P1)+1,1,P1) $ VERSION := 'MAJ_VER'.'MIN_VER' $ VAR := 'MAJ_VER''MIN_VER' $ IF (F$TYPE (MAJ_VER).NES."INTEGER".OR.F$TYPE (MIN_VER).NES."INTEGER").OR.- (F$LEN(VERSION).NES.F$LEN(P1).AND. F$LEN(VERSION)+1.NES.F$LEN(P1)) $ THEN WO " $ WO "%RDB-E-SETVER Bad MULTIVERSION version number." $ WO " $ IF F$MODE().EQS."BATCH" $ THEN GOTO RDB$EXIT_FAILURE $ ELSE P1 = "" $ GOTO ASK_P1 $ ENDIF $ ENDIF $ ENDIF $ ENDIF $ IF P2.EQS."REMOTE" $ THEN LNM_TBL = "LNM$PROCESS" $ GOSUB REMOVE_MSG_LOGICALS $ IF VAR.EQS."" $ THEN DEFINE/NOLOG RDMS$VERSION_VARIANT " " $ DEFINE/NOLOG RDMS$RMU_VARIANT "RMU" $ ELSE IF F$SEARCH("SYS$COMMON:[SYSLIB]RDB$SHARE''VAR'.EXE").NES."" $ THEN DEFINE/NOLOG RDMS$VERSION_VARIANT "''VAR'" $ IF VAR.EQS."50" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUC" $ IF VAR.EQS."51" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUD" $ IF VAR.EQS."60" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUE" $ IF VAR.EQS."61" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUF" $ IF VAR.EQS."70" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUG" $ IF VAR.EQS."71" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUH" $ IF VAR.EQS."72" THEN DEFINE/NOLOG RDMS$RMU_VARIANT "RMUI" $ ELSE VAR = "" ! Default to Standard $ DEFINE/NOLOG RDMS$VERSION_VARIANT " " $ DEFINE/NOLOG RDMS$RMU_VARIANT "RMU" $ ENDIF $ ENDIF $ IF P3.EQS."SQLSRV" $ THEN GOSUB GET_RDMPRV_IDENT $ DEFINE/NOLOG RDBVMS$VERSION "''RDB$$EXTRACTED_VERSION'" $ DEFINE/NOLOG RDBVMS$IDENT "''RDB$$IDENT'" $ IF VAR.EQS."" ! Set if Standard version $ THEN DEFINE/NOLOG RDMS$VERSION_VARIANT " " $ DEFINE/NOLOG RDMS$RMU_VARIANT "RMU" $ ENDIF $ ENDIF $ RMU :== 'F$TRNLNM("RDMS$RMU_VARIANT")' $ DEFINE/NOLOG RDO SYS$COMMON:[SYSEXE]RDO'VAR'.EXE $ DEFINE/NOLOG RDBPRE SYS$COMMON:[SYSEXE]RDBPRE'VAR'.EXE $ DEFINE/NOLOG RDMLRTL SYS$LIBRARY:RDMLRTL'VAR'.OLB $ DEFINE/NOLOG RDML SYS$SYSTEM:RDML'VAR'.EXE $ DEFINE/NOLOG RMUSHR SYS$COMMON:[SYSLIB]RMUSHR'VAR'.EXE $ IF VAR.EQS."".OR.VAR.EQS."61" $ THEN DEFINE/NOLOG RMUWIN SYS$SYSTEM:RMUWIN'VAR'.EXE $ DEFINE/NOLOG RMUSTAT SYS$SYSTEM:RMUSTAT'VAR'.EXE $ ELSE IF F$TRNLNM("RMUWIN","LNM$PROCESS").NES."" THEN DEASSIGN RMUWIN $ IF F$TRNLNM("RMUSTAT","LNM$PROCESS").NES."" THEN DEASSIGN RMUSTAT $ ENDIF $ IF JSETVER.NES."" $ THEN IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDBMSGS''VAR'.EXE").NES."" THEN DEFINE/NOLOG RDBMSGS SYS$COMMON:[SYSMSG]JRDBMSGS'VAR'.EXE $ IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDMLMSG''VAR'.EXE").NES."" THEN DEFINE/NOLOG RDMLMSG'VAR' SYS$COMMON:[SYSMSG]JRDMLMSG'VAR'.EXE $ IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDMSMSG''VAR'.EXE").NES."" THEN DEFINE/NOLOG RDMSMSG'VAR' SYS$COMMON:[SYSMSG]JRDMSMSG'VAR'.EXE $ IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDOMSG''VAR'.EXE").NES."" THEN DEFINE/NOLOG RDOMSG'VAR' SYS$COMMON:[SYSMSG]JRDOMSG'VAR'.EXE $ ENDIF $ IF F$SEARCH("SYS$COMMON:[SYSEXE]''USE_JMSG'RMU''VAR'.EXE").NES."" THEN DEFINE/NOLOG RMU'VAR' SYS$COMMON:[SYSEXE]'USE_JMSG'RMU'VAR'.EXE $ IF VAR.EQS."" THEN REAL_P1 = "S" $ @SYS$COMMON:[SYSLIB]SQL$SETVER "''REAL_P1'" "''P2'" "''P3'" "" "RDB" $ IF .NOT. $STATUS $ THEN CALL CLEANUP_RTN $ GOTO RDB$EXIT_FAILURE $ ELSE CALL CLEANUP_RTN $ GOTO RDB$EXIT_SUCCESS $ ENDIF $ ENDIF $ IF P2.EQS."DATE".OR.P2.EQS."NODATE" $ THEN P3 = P2 $ P2 = "" $ ENDIF $ GOSUB VALIDATE_PARAMETERS $ LNM_TBL = "LNM$"+F$ELEMENT(1,"/",P2) $ SET NOON $ IF F$TYPE(RMU).EQS."" $ THEN CUR_RMU = "" $ ELSE CUR_RMU = RMU $ ENDIF $ CUR_RDO = F$TRNLNM("RDO",LNM_TBL) $ CUR_RDBPRE = F$TRNLNM("RDBPRE",LNM_TBL) $ CUR_RDMLRTL = F$TRNLNM("RDMLRTL",LNM_TBL) $ CUR_RDML = F$TRNLNM("RDML",LNM_TBL) $ CUR_RMUWIN = F$TRNLNM("RMUWIN",LNM_TBL) $ CUR_RMUSTAT = F$TRNLNM("RMUSTAT",LNM_TBL) $ CUR_RMUSHR = F$TRNLNM("RMUSHR",LNM_TBL) $ CUR_RDBVMS$OPTION = F$TRNLNM("RDBVMS$OPTION",LNM_TBL) $ CUR_RDBVMS$LIB = F$TRNLNM("RDBVMS$LIB",LNM_TBL) $ CUR_RDBVMS$VERSION = F$TRNLNM("RDBVMS$VERSION",LNM_TBL) $ CUR_RDBVMS$VARIANT = F$TRNLNM("RDBVMS$VARIANT",LNM_TBL) $ CUR_RDMS$VERSION_VARIANT= F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL) $ CUR_RDBVMS$IDENT = F$TRNLNM("RDBVMS$IDENT",LNM_TBL) $ CUR_RDMS$RMU_VARIANT = F$TRNLNM("RDMS$RMU_VARIANT",LNM_TBL) $ CUR_RDM$DEMO = F$TRNLNM("RDM$DEMO",LNM_TBL) $ CUR_RDBVMS$IVP_DIR = F$TRNLNM("RDBVMS$IVP_DIR",LNM_TBL) $ CUR_RDBMSGS = F$TRNLNM("RDBMSGS",LNM_TBL) $ IF (F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL).EQS." ") $ THEN CUR_RDMLMSG = F$TRNLNM("RDMLMSG",LNM_TBL) $ CUR_RDMSMSG = F$TRNLNM("RDMSMSG",LNM_TBL) $ CUR_RDOMSG = F$TRNLNM("RDOMSG",LNM_TBL) $ CUR_RMU = F$TRNLNM("RMU",LNM_TBL) $ ELSE LAST_VAR = F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL) $ CUR_RDMLMSG = F$TRNLNM("RDMLMSG''LAST_VAR'",LNM_TBL) $ CUR_RDMSMSG = F$TRNLNM("RDMSMSG''LAST_VAR'",LNM_TBL) $ CUR_RDOMSG = F$TRNLNM("RDOMSG''LAST_VAR'",LNM_TBL) $ CUR_RMU = F$TRNLNM("RMU''LAST_VAR'",LNM_TBL) $ ENDIF $ SET ON $ IF P1.EQS."REMOVE" THEN GOTO REMOVE_LOGICALS $ GOSUB GET_RDMPRV_IDENT $ GOSUB REMOVE_MSG_LOGICALS $ DEFINE/NOLOG'P2' RDO SYS$COMMON:[SYSEXE]RDO'VAR'.EXE $ DEFINE/NOLOG'P2' RDBPRE SYS$COMMON:[SYSEXE]RDBPRE'VAR'.EXE $ DEFINE/NOLOG'P2' RDMLRTL SYS$LIBRARY:RDMLRTL'VAR'.OLB $ DEFINE/NOLOG'P2' RDML SYS$SYSTEM:RDML'VAR'.EXE $ DEFINE/NOLOG'P2' RMUSHR SYS$COMMON:[SYSLIB]RMUSHR'VAR'.EXE $ IF RDB$$EXTRACTED_VERSION.EQS."6.1" $ THEN DEFINE/NOLOG'P2' RMUWIN SYS$SYSTEM:RMUWIN'VAR'.EXE $ DEFINE/NOLOG'P2' RMUSTAT SYS$SYSTEM:RMUSTAT'VAR'.EXE $ ELSE IF F$TRNLNM("RMUWIN",LNM_TBL).NES."" THEN DEASSIGN'P2' RMUWIN $ IF F$TRNLNM("RMUSTAT",LNM_TBL).NES."" THEN DEASSIGN'P2' RMUSTAT $ ENDIF $ IF RDB$$EXTRACTED_VERSION .GES. "7.0" $ THEN DEFINE/NOLOG'P2' RDM$DEMO SYS$COMMON:[SYSHLP.EXAMPLES.RDB'VAR'] $ DEFINE/NOLOG'P2' RDBVMS$IVP_DIR SYS$COMMON:[SYSTEST.RDB'VAR'] $ ELSE DEFINE/NOLOG'P2' RDM$DEMO SYS$COMMON:[SYSHLP.EXAMPLES.DECRDB'VAR'] $ DEFINE/NOLOG'P2' RDBVMS$IVP_DIR SYS$COMMON:[SYSTEST.DECRDB'VAR'] $ ENDIF $ DEFINE/NOLOG'P2' RDBVMS$OPTION SYS$COMMON:[SYSLIB]RDBVMS'VAR'.OPT $ DEFINE/NOLOG'P2' RDBVMS$LIB SYS$COMMON:[SYSLIB]RDBVMSLIB'VAR'.OLB $ IF VAR.EQS."" $ THEN DEFINE/NOLOG'P2' RDMS$VERSION_VARIANT " " $ DEFINE/NOLOG'P2' RDBVMS$VARIANT NL: $ DEASSIGN'P2' RDBVMS$VARIANT $ DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMU" $ ELSE DEFINE/NOLOG'P2' RDMS$VERSION_VARIANT "''VAR'" $ DEFINE/NOLOG'P2' RDBVMS$VARIANT "''VAR'" $ IF VAR.EQS."50" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUC" $ IF VAR.EQS."51" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUD" $ IF VAR.EQS."60" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUE" $ IF VAR.EQS."61" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUF" $ IF VAR.EQS."70" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUG" $ IF VAR.EQS."71" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUH" $ IF VAR.EQS."72" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT "RMUI" $ ENDIF $ IF P2.EQS."/PROCESS" $ THEN RMU :== 'F$TRNLNM("RDMS$RMU_VARIANT") $ ELSE WO " $ WO "%You have changed the default Oracle Rdb Version at a level other" $ WO "%than /PROCESS. The RMU symbol may have to be set by users" $ WO "%using Oracle Rdb at this level. This can be done with the $ WO "%DCL command: @SYS$SHARE:RDB$SETVER RESET" $ WO " $ ENDIF $ DEFINE/NOLOG'P2' RDBVMS$VERSION "''RDB$$EXTRACTED_VERSION'" $ DEFINE/NOLOG'P2' RDBVMS$IDENT "''RDB$$IDENT'" $ IF JSETVER.NES."" $ THEN IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDBMSGS''VAR'.EXE").NES."" THEN DEFINE/NOLOG'P2' RDBMSGS SYS$COMMON:[SYSMSG]JRDBMSGS'VAR'.EXE $ IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDMLMSG''VAR'.EXE").NES."" THEN DEFINE/NOLOG'P2' RDMLMSG'VAR' SYS$COMMON:[SYSMSG]JRDMLMSG'VAR'.EXE $ IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDMSMSG''VAR'.EXE").NES."" THEN DEFINE/NOLOG'P2' RDMSMSG'VAR' SYS$COMMON:[SYSMSG]JRDMSMSG'VAR'.EXE $ IF F$SEARCH("SYS$COMMON:[SYSMSG]JRDOMSG''VAR'.EXE").NES."" THEN DEFINE/NOLOG'P2' RDOMSG'VAR' SYS$COMMON:[SYSMSG]JRDOMSG'VAR'.EXE $ ENDIF $ IF F$SEARCH("SYS$COMMON:[SYSEXE]''USE_JMSG'RMU''VAR'.EXE").NES."" THEN DEFINE/NOLOG'P2' RMU'VAR' SYS$COMMON:[SYSEXE]'USE_JMSG'RMU'VAR'.EXE $ @SYS$COMMON:[SYSLIB]RDB$SHOVER.COM 'P3' $ IF P1.NES."S".AND.VAR.EQS."" THEN REAL_P1 = "S" $ @SYS$COMMON:[SYSLIB]SQL$SETVER "''REAL_P1'" "''P2'" "''P3'" "" "RDB" $ IF .NOT. $STATUS $ THEN CALL CLEANUP_RTN $ GOTO RDB$EXIT_FAILURE $ ELSE CALL CLEANUP_RTN $ GOTO RDB$EXIT_SUCCESS $ ENDIF $ REMOVE_LOGICALS: ! This is for debugging purposes only and is not documented $ IF F$LENGTH(LNM_TBL) .EQ. 15 THEN LNM_TBL = F$EXTRACT(0,10,LNM_TBL) $ IF F$TRNLNM("RDO",LNM_TBL).NES."" THEN DEASSIGN'P2' RDO $ IF F$TRNLNM("RDBPRE",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBPRE $ IF F$TRNLNM("RDBSERVER",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBSERVER $ IF F$TRNLNM("RDMLRTL",LNM_TBL).NES."" THEN DEASSIGN'P2' RDMLRTL $ IF F$TRNLNM("RDML",LNM_TBL).NES."" THEN DEASSIGN'P2' RDML $ IF F$TRNLNM("RMUWIN",LNM_TBL).NES."" THEN DEASSIGN'P2' RMUWIN $ IF F$TRNLNM("RMUSTAT",LNM_TBL).NES."" THEN DEASSIGN'P2' RMUSTAT $ IF F$TRNLNM("RMUSHR",LNM_TBL).NES."" THEN DEASSIGN'P2' RMUSHR $ IF F$TRNLNM("RDM$DEMO",LNM_TBL).NES."" THEN DEASSIGN'P2' RDM$DEMO $ IF F$TRNLNM("RDBVMS$IVP_DIR",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBVMS$IVP_DIR $ IF F$TRNLNM("RDBVMS$OPTION",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBVMS$OPTION $ IF F$TRNLNM("RDBVMS$LIB",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBVMS$LIB $ IF F$TRNLNM("RDBVMS$VARIANT",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBVMS$VARIANT $ IF F$TRNLNM("RDMS$RMU_VARIANT",LNM_TBL).NES."" THEN DEASSIGN'P2' RDMS$RMU_VARIANT $ IF F$TRNLNM("RDBVMS$VERSION",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBVMS$VERSION $ IF F$TRNLNM("RDBVMS$IDENT",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBVMS$IDENT $ IF P2.EQS."/PROCESS".AND.F$TYPE(RMU).NES."" THEN DELETE/SYMBOL/GLOBAL RMU $ IF F$TRNLNM("RDBMSGS",LNM_TBL).NES."" THEN DEASSIGN'P2' RDBMSGS $ IF F$TRNLNM("RDMLMSG",LNM_TBL).NES."" THEN DEASSIGN'P2' RDMLMSG $ IF F$TRNLNM("RDMSMSG",LNM_TBL).NES."" THEN DEASSIGN'P2' RDMSMSG $ IF F$TRNLNM("RDOMSG",LNM_TBL).NES."" THEN DEASSIGN'P2' RDOMSG $ IF F$TRNLNM("RMU",LNM_TBL).NES."" THEN DEASSIGN'P2' RMU $ IF F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL).NES."" $ THEN VAR = F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL) $ IF F$TRNLNM("RDMLMSG''VAR'",LNM_TBL).NES."" THEN DEASSIGN'P2' RDMLMSG'VAR' $ IF F$TRNLNM("RDMSMSG''VAR'",LNM_TBL).NES."" THEN DEASSIGN'P2' RDMSMSG'VAR' $ IF F$TRNLNM("RDOMSG''VAR'",LNM_TBL).NES."" THEN DEASSIGN'P2' RDOMSG'VAR' $ IF F$TRNLNM("RMU''VAR'",LNM_TBL).NES."" THEN DEASSIGN'P2' RMU'VAR' $ DEASSIGN'P2' RDMS$VERSION_VARIANT $ ENDIF $ @SYS$COMMON:[SYSLIB]SQL$SETVER REMOVE "''P2'" $ GOTO RDB$EXIT_SUCCESS $ RDB$_WARNING: $ ON CONTROL_Y THEN CONTINUE $ ON WARNING THEN CONTINUE $ WO "%RDB-I-UNEXWARN Unexpected problem found ... unable to continue" $ GOSUB RESET_LOGICALS $ WO " $ @SYS$COMMON:[SYSLIB]RDB$SHOVER.COM 'P3' $ GOTO RDB$EXIT_SUCCESS $ RDB$_RESET: $ IF .NOT.RESET_FLAG THEN GOTO RDB$_RESET_CONT $ GOSUB RESET_LOGICALS $ RDB$_RESET_CONT: $ CALL CONTROL_Y_EXIT_HANDLER $ GOTO RDB$EXIT_SUCCESS $ RDB$EXIT_FAILURE: $ RDB$SAVE_VERIFY := 'F$VERIFY(RDB$SAVE_VERIFY)' $ EXIT %X10000000 $ RDB$EXIT_SUCCESS: $ RDB$SAVE_VERIFY := 'F$VERIFY(RDB$SAVE_VERIFY)' $ EXIT 1 $ CLEANUP_RTN: SUBROUTINE $ ON WARNING THEN CONTINUE $ ON CONTROL_Y THEN CONTINUE $ CALL DELETE_SYMBOL RDB$$EXTRACTED_VERSION $ CALL DELETE_SYMBOL RDB$$IDENT $ CALL DELETE_SYMBOL RDB$$PARAM $ ENDSUBROUTINE $ CONTROL_Y_EXIT_HANDLER: SUBROUTINE $ ON CONTROL_Y THEN CONTINUE $ ON WARNING THEN CONTINUE $ WO "%RDB-I-CONTROLY User hit control Y" $ WO " $ @SYS$COMMON:[SYSLIB]RDB$SHOVER.COM 'P3' $ CALL CLEANUP_RTN $ STOP $ ENDSUBROUTINE $ EXTRACT_VERSION: SUBROUTINE !(IN) P1 = image file name (OUT) RDB$$EXTRACTED_VERSION = version in image ident $ ON WARNING THEN CALL WARNING_EXIT_HANDLER $ ON CONTROL_Y THEN CALL CONTROL_Y_EXIT_HANDLER $ SET NOON $ DEFINE/USER SYS$ERROR _NL: $ DEFINE/USER SYS$OUTPUT _NL: $ ANALYZE/IMAGE/SELECT=IDENTIFICATION 'P1'/OUTPUT=NLA0: $ SET ON $ REC1 = ANALYZE$IDENTIFICATION $ PERIOD_LOC = F$LOCATE(".",REC1) $ NUM = F$EXTRACT(PERIOD_LOC-2,F$LENGTH(REC1),REC1) $ DASH_LOC = F$LOCATE("-",NUM) $ QUOTE_LOC = F$LOCATE("""",NUM) $ RDB$$EXTRACTED_VERSION == F$EXTRACT(1,DASH_LOC-1,NUM) $ RDB$$EXTRACTED_VERSION == F$EXTRACT(0,3,RDB$$EXTRACTED_VERSION) $ RDB$$IDENT == F$EXTRACT(0,QUOTE_LOC,NUM) $ ENDSUBROUTINE $ DELETE_SYMBOL: SUBROUTINE ! (IN ) P1 = symbol $ SET NOON $ DEFINE/USER SYS$ERROR _NL: $ DEFINE/USER SYS$OUTPUT _NL: $ DELETE/SYMBOL/GLOBAL 'P1' $ SET ON $ ENDSUBROUTINE $ REMOVE_MSG_LOGICALS: $ IF P2.EQS."REMOTE" $ THEN LNM_TABLE = "" $ ELSE LNM_TABLE = P2 $ ENDIF $ IF F$TRNLNM("RMU",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RMU $ IF F$TRNLNM("RMU''VAR'",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RMU'VAR' $ IF F$TRNLNM("RDBMSGS",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDBMSGS $ IF (F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL).EQS." ") $ THEN IF F$TRNLNM("RDMLMSG",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDMLMSG $ IF F$TRNLNM("RDMSMSG",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDMSMSG $ IF F$TRNLNM("RDOMSG",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDOMSG $ IF F$TRNLNM("RMU",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RMU $ ENDIF $ IF (F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL).NES."").AND.(F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL).NES." ") $ THEN LAST_VAR = F$TRNLNM("RDMS$VERSION_VARIANT",LNM_TBL) $ IF F$TRNLNM("RDMLMSG''LAST_VAR'",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDMLMSG'LAST_VAR' $ IF F$TRNLNM("RDMSMSG''LAST_VAR'",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDMSMSG'LAST_VAR' $ IF F$TRNLNM("RDOMSG''LAST_VAR'",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RDOMSG'LAST_VAR' $ IF F$TRNLNM("RMU''LAST_VAR'",LNM_TBL).NES."" THEN DEASSIGN'LNM_TABLE' RMU'LAST_VAR' $ ENDIF $ RETURN $ GET_RDMPRV_IDENT: ! Check for existance of requested version $ FILE = "SYS$COMMON:[SYSLIB]RDMPRV''VAR'.EXE" $ IF F$SEARCH(FILE).EQS."" $ THEN IF P1.EQS."S" $ THEN WO "%There is no Oracle Rdb STANDARD version on this system" $ CALL CLEANUP_RTN $ GOTO RDB$EXIT_FAILURE $ ELSE FILE = "SYS$COMMON:[SYSLIB]RDMPRV.EXE" $ IF F$SEARCH(FILE).EQS."" $ THEN WO "%Oracle Rdb Version ''P1' does not exist on your system." $ CALL CLEANUP_RTN $ GOTO RDB$EXIT_FAILURE $ ELSE VAR = "" $ ENDIF $ ENDIF $ ENDIF $ CALL EXTRACT_VERSION "''FILE';0" $ IF P1.NES."S".AND.P1.NES."" $ THEN IF "''VERSION'".NES."''RDB$$EXTRACTED_VERSION'" $ THEN IF VAR.EQS."" $ THEN WO "%RDB-E-SETVER Oracle Rdb Version ''P1' does not exist on your system." $ ELSE WO " $ WO "%RDB-E-SETVER ''FILE' Image Ident Problem" $ WO "%RDB-E-SETVER IMAGE IDENT = ''RDB$$EXTRACTED_VERSION', VERSION = ''VERSION'" $ WO " $ ENDIF $ CALL CLEANUP_RTN $ GOTO RDB$EXIT_FAILURE $ ENDIF $ ENDIF $ RETURN $ RESET_LOGICALS: $ IF CUR_RMU.NES."" THEN RMU :== 'CUR_RMU $ IF CUR_RDO.NES."" THEN DEFINE/NOLOG'P2' RDO 'CUR_RDO' $ IF CUR_RDBPRE.NES."" THEN DEFINE/NOLOG'P2' RDBPRE 'CUR_RDBPRE' $ IF CUR_RDMLRTL.NES."" THEN DEFINE/NOLOG'P2' RDMLRTL 'CUR_RDMLRTL' $ IF CUR_RDML.NES."" THEN DEFINE/NOLOG'P2' RDML 'CUR_RDML' $ IF CUR_RMUWIN.NES."" THEN DEFINE/NOLOG'P2' RMUWIN 'CUR_RMUWIN' $ IF CUR_RMUSTAT.NES."" THEN DEFINE/NOLOG'P2' RMUSTAT 'CUR_RMUSTAT' $ IF CUR_RMUSHR.NES."" THEN DEFINE/NOLOG'P2' RMUSHR 'CUR_RMUSHR' $ IF CUR_RDMS$VERSION_VARIANT.NES."" $ THEN IF CUR_RDMS$VERSION_VARIANT.EQS." " $ THEN DEFINE/NOLOG'P2' RDMS$VERSION_VARIANT " " $ ELSE DEFINE/NOLOG'P2' RDMS$VERSION_VARIANT 'CUR_RDMS$VERSION_VARIANT' $ ENDIF $ ENDIF $ IF CUR_RDM$DEMO.NES."" THEN DEFINE/NOLOG'P2' RDM$DEMO 'CUR_RDM$DEMO' $ IF CUR_RDBVMS$IVP_DIR.NES."" THEN DEFINE/NOLOG'P2' RDBVMS$IVP_DIR 'CUR_RDBVMS$IVP_DIR' $ IF CUR_RDBVMS$OPTION.NES."" THEN DEFINE/NOLOG'P2' RDBVMS$OPTION 'CUR_RDBVMS$OPTION' $ IF CUR_RDBVMS$LIB.NES."" THEN DEFINE/NOLOG'P2' RDBVMS$LIB 'CUR_RDBVMS$LIB' $ IF CUR_RDBVMS$VERSION.NES."" THEN DEFINE/NOLOG'P2' RDBVMS$VERSION 'CUR_RDBVMS$VERSION' $ IF CUR_RDBVMS$VARIANT.NES."" THEN DEFINE/NOLOG'P2' RDBVMS$VARIANT 'CUR_RDBVMS$VARIANT' $ IF CUR_RDBVMS$IDENT.NES."" THEN DEFINE/NOLOG'P2' RDBVMS$IDENT 'CUR_RDBVMS$IDENT' $ IF CUR_RDMS$RMU_VARIANT.NES."" THEN DEFINE/NOLOG'P2' RDMS$RMU_VARIANT 'CUR_RDMS$RMU_VARIANT' $ IF CUR_RDBMSGS.NES."" THEN DEFINE/NOLOG'P2' RDBMSGS 'CUR_RDBMSGS' $ IF CUR_RDMLMSG.NES."" THEN DEFINE/NOLOG'P2' RDMLMSG 'CUR_RDMLMSG' $ IF CUR_RDMSMSG.NES."" THEN DEFINE/NOLOG'P2' RDMSMSG 'CUR_RDMSMSG' $ IF CUR_RDOMSG.NES."" THEN DEFINE/NOLOG'P2' RDOMSG 'CUR_RDOMSG' $ IF CUR_RMU.NES."" THEN DEFINE/NOLOG'P2' RMU 'CUR_RMU' $ RETURN $ VALIDATE_PARAMETERS: ! Validate all parameters. Print error message and exit when a problem occurs. $ IF P2.EQS."" THEN P2 = "/PROCESS" $ IF P2.EQS."/SYSTEM" THEN P2 = "/SYSTEM/EXEC" $ IF P2.NES."/GROUP".AND.P2.NES."/JOB".AND.P2.NES."/SYSTEM/EXEC".AND.P2.NES."/PROCESS" $ THEN WO " $ WO "%RDB-E-SETVER Invalid Logical Table: ''p2'" $ WO "%RDB-I-SETVER Try /PROCESS, /JOB, /GROUP or /SYSTEM" $ WO " $ GOTO RDB$EXIT_FAILURE $ ENDIF $ IF P2.EQS."/SYSTEM/EXEC".AND.F$PRIVILEGE("SYSNAM").EQS."FALSE" $ THEN WO " $ WO "%RDB-E-SETVER SYSNAM is Required for /SYSTEM" $ WO " $ GOTO RDB$EXIT_FAILURE $ ENDIF $ IF P2.EQS."/GROUP".AND.F$PRIVILEGE("SYSPRV").EQS."FALSE".AND.F$PRIVILEGE("GRPNAM").EQS."FALSE" $ THEN WO " $ WO "%RDB-E-SETVER SYSPRV or GRPNAM is Required for /GROUP" $ WO " $ GOTO RDB$EXIT_FAILURE $ ENDIF $ VALID_P3 = ",DATE,NODATE,SQL,DISPATCH,ALL,NOSYSTEM," $ IF P3.EQS."" THEN P3 = "DATE" $ IF F$LOCATE(",''P3',",VALID_P3) .EQ. F$LENGTH(VALID_P3) $ THEN WO " $ WO "%RDB-E-SETVER P3 must be ''VALID_P3'" $ WO " $ GOTO RDB$EXIT_FAILURE $ ENDIF $ RETURN $ CHECK_FOR_JVMS: $ IF F$SEARCH("SYS$COMMON:[SYSLIB]JSYSHR.EXE").EQS."" $ THEN WO " $ WO "%RDB-E-SETVER JVMS doesn't exit on your system." $ WO " $ GOTO RDB$EXIT_FAILURE $ ENDIF $ RETURN $ WARNING_EXIT_HANDLER: SUBROUTINE $ ON CONTROL_Y THEN CONTINUE $ ON WARNING THEN CONTINUE $ WO "%RDB-I-UNEXWARN Unexpected problem found ... unable to continue" $ CALL CLEANUP_RTN $ STOP $ ENDSUBROUTINE