$ OLD_VRFY = 'F$VERIFY(0)' $! $! Copyright © Oracle Corporation 1996. All Rights Reserved. $! $! File: SQLSRV_SETVER.COM $! $! This command procedure sets up the necessary symbols and $! logical names needed to run SQL/Services $! This will run only when an EXECUTION Server is created $! $! P1 = (REQUIRED) $! SQL version (ie: S for STANDARD 7.0, 6.1 for MULTIVERSION 6.1) $! $ EXIT_STATUS = 1 $ ON WARNING THEN $ GOTO ERROR_EXIT $ ON CONTROL_Y THEN $ GOTO ERROR_EXIT $ $ P1 = F$EDIT(P1,"UPCASE") $! $ IF "''P1'" .EQS. "" $ THEN $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT "%SQLSRV-E-SETVER, No version parameter passed" $ WRITE SYS$OUTPUT " " $ GOTO ERROR_EXIT $ ENDIF $! $ IF "''P1'" .EQS. "S" $ THEN $ VARIANT = "" $ VERSION = "S" $ ELSE $ IF F$LOCATE(".",P1) .EQ. F$LENGTH(P1) $ THEN $ P1 = F$EXTRACT(0,1,P1) + "." + F$EXTRACT(1,99,P1) $ ENDIF $ MAJ_VER = "''F$ELEMENT(0,".", P1)'" $ MIN_VER = "''F$ELEMENT(1,".", P1)'" $ VERSION := 'MAJ_VER'.'MIN_VER' $ VARIANT := '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 $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT "%SQLSRV-E-SETVER Bad MULTIVERSION version number." $ WRITE SYS$OUTPUT " " $ GOTO ERROR_EXIT $ ENDIF $ ENDIF $ $ ! $ ! SQL/Services installation verifies that if Oracle Rdb or SQL are on the $ ! system, rdb$setver or sql$setver.com will be there. We no longer $ ! need to hunt through all our past set version routines to $ ! find one to use. We look for the Oracle Rdb procedure first. If we do $ ! not find an Oracle Rdb procedure, look for the SQL only procedure $ ! $ RETRY_FLAG = 0 $ SQL_SETVER_RTN = F$SEARCH ("SYS$LIBRARY:RDB$SETVER.COM") $ IF SQL_SETVER_RTN .EQS. "" $ THEN $ SQL_SETVER_RTN = F$SEARCH ("SYS$LIBRARY:SQL$SETVER.COM") $ ELSE $ RETRY_FLAG = 1 $ ENDIF $ $ IF SQL_SETVER_RTN .EQS. "" $ THEN $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT "%SQLSRV-E-SETVER, Oracle Rdb or SQL must be installed to run SQL/Services" $ WRITE SYS$OUTPUT " " $ GOTO ERROR_EXIT $ ENDIF $ $ ! $ ! Set version to Japanese if specified at sqlsrv$startup time and $ ! if version is 7.0. $ ! $ if (f$trnlnm ("SQLSRV_SET_JAPANESE") .eqs. "TRUE") $ then $ VERSION = "J" + VERSION $ endif $ ! $ ! We found a routine, so run it. There might be an old RDB$SETVER on $ ! the system, so retry the command if possible if the RDBVMS$IDENT $ ! logical is not defined. Note that this will cause RDB$SETVER to be $ ! called twice if the specified Oracle Rdb version doesn't exist, but its in $ ! an error path so performance is not so much of an issue. $ ! $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT "Executing command: @''SQL_SETVER_RTN' ''VERSION' REMOTE SQLSRV" $ WRITE SYS$OUTPUT " " $ @'SQL_SETVER_RTN' 'VERSION' REMOTE SQLSRV $ IF RETRY_FLAG $ THEN $ IF F$TRNLNM( "RDBVMS$IDENT" ) .EQS. "" $ THEN $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT "Executing command: @''SQL_SETVER_RTN' ''VERSION'" $ WRITE SYS$OUTPUT " " $ @'SQL_SETVER_RTN' 'VERSION' $ ENDIF $ ENDIF $ $ ALL_DONE: $ TMP = F$VERIFY(OLD_VRFY) $ EXIT 'EXIT_STATUS' $ $ ERROR_EXIT: $ EXIT_STATUS = %x10000000 $ GOTO ALL_DONE