From Newsgroup: comp.databases.ingres
Thanks for that very comprehensive response Paul. That's a great public service.
Not to take anything away from the rest of what you wrote, your first
sentence points out something I didn't know. As it happens almost all
my Windows machines running Ingres have multiple installations. So
that explains why I don't see II_SYSTEM.
Sure enough, I just hopped onto the one machine with only a single
installation and II_SYSTEM is set, ripe for use.
I am still puzzling over why it wouldn't be set on my other machines
when it is implied in settings in PATH, LIB, etc.
Since I would need to do an ingprenv to get the installation identifier
I think parsing %LIB% for the "ingres\lib" entry remains the most
concise solution. But bleh.
Thanks again for putting my mind at rest.
Roy
Paul White wrote:
Hi Roy,
If the sysop has decided not install II_SYSTEM in in the System
environment (or there may be multiple installations) then you have an
number of options to search for installations:
If you have access to an Ingres Command window.
set | find "II"
set | find /i "lib"
Right click on an Ingres utility icon to see the wrapper which sets the environment based on the location.a In that shell you can query
environment and ingprenv:
eg
Actian Administrator Command Prompt
C:\IngresII\ingres\bin\ingadminwrap.exe "C:\Windows\system32\CMD.EXE" /K "C:\IngresII\ingres\bin\setingenvs.bat"
Actian Visual DBA
C:\IngresII\ingres\bin\ingwrap.exe "C:\IngresII\ingres\bin\vdba.exe"
For DB servers I always use the 8 character namea to simplify admin scripting.a eg C:\IngresII, D:\IngresII or similar.a Default windows directories are usually:
C:\ProgramData\Actian\
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Actian>
C:\Program Files\Actian\
C:\Program Files (x86) \Actian\
If you have admin access to the server the reg command can be used directly:
reg query HKLM\Software\classes | find /i "\ingres"
HKEY_LOCAL_MACHINE\Software\classes\Ingres.IIA.II HKEY_LOCAL_MACHINE\Software\classes\Ingres.VDBA.II HKEY_LOCAL_MACHINE\Software\classes\IngresImportExport HKEY_LOCAL_MACHINE\Software\classes\IngresImportExport.1 HKEY_LOCAL_MACHINE\Software\classes\Ingres_Database_II
reg query hklm\software\classes\ingres_database_ii /s HKEY_LOCAL_MACHINE\software\classes\ingres_database_ii\shell
aaa II_SYSTEMaaa REG_SZaaa C:\IngresII
aaa II_INSTALLATIONaaa REG_SZaaa II
aaa II_TEMPORARYaaa REG_SZaaa C:\ProgramData\Actian\IngresII\temp
The output of commands can be captured to a variable if you are trying
to automate:
for /f "tokens=*" %%a in ( 'reg query hklm\software\classes\ingres_database_ii /s ^| find "II_SYSTEM"') do set MYLOC=%%a
set MYLOC=II_SYSTEMaaa REG_SZ C:\IngresII
echo %MYLOC%
II_SYSTEMaaa REG_SZaaa C:\IngresII
for /f "tokens=3" %%a in ( 'reg query hklm\software\classes\ingres_database_ii /s ^| find "II_SYSTEM"') do set MYLOC=%%a
set MYLOC=C:\IngresII
echo %MYLOC%
C:\IngresII
(ps use %a instead of %%a if running directly from command window)
You can use Powershell to retrieve registry items without admin access.a
I'm not a fan of powershell.a All my scripts are traditional windows BAT files.
PS W:\> Get-ChildItem -Path HKLM:\software\classes\ingres* |
Select-Object Name
Name
----
HKEY_LOCAL_MACHINE\software\classes\Ingres.IIA.II HKEY_LOCAL_MACHINE\software\classes\Ingres.VDBA.II HKEY_LOCAL_MACHINE\software\classes\IngresImportExport HKEY_LOCAL_MACHINE\software\classes\IngresImportExport.1 HKEY_LOCAL_MACHINE\software\classes\Ingres_Database_II
PS W:\> Get-Item -Path HKLM:\software\classes\ingres_database_II\shell
aaa Hive: HKEY_LOCAL_MACHINE\software\classes\ingres_database_II\ Nameaaaaaaaaaaaaaaaaaaaaaaaaaa Property
----aaaaaaaaaaaaaaaaaaaaaaaaaa --------
shellaaaaaaaaaaaaaaaaaaaaaaaaa II_SYSTEMaaaaaa : C:\IngresII
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa II_INSTALLATION : II
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa II_TEMPORARYaaa : C:\ProgramData\Actian\IngresII\temp
PS W:\> Get-ItemProperty -Path HKLM:\software\classes\ingres_database_II\shell
II_SYSTEMaaaaaa : C:\IngresII
II_INSTALLATION : II
II_TEMPORARYaaa : C:\ProgramData\Actian\IngresII\temp
PSPathaaaaaaaaa : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\classes\ingr
aaaaaaaaaaaaaaaaa es_database_II\shell
PSParentPathaaa : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\classes\ingr
aaaaaaaaaaaaaaaaa es_database_II
PSChildNameaaaa : shell
PSDriveaaaaaaaa : HKLM
PSProvideraaaaa : Microsoft.PowerShell.Core\Registry
PS W:\> Get-ItemPropertyValue -Path HKLM:\software\classes\ingres_database_II\shell -name II_SYSTEM
C:\IngresII
On 24/01/2022 6:30 am, Roy Hann wrote:
In the *nix world I would look for $II_SYSTEM and navigate from there.
But there is no II_SYSTEM in Windows. Is there anything that makes it
look like I know what I'm doing other than searching %LIB% for an entry
ending with "ingres\lib"?
Roy
_______________________________________________
Info-ingres mailing list
Info-ingres@lists.planetingres.org
https://lists.planetingres.org/mailman/listinfo/info-ingres
--- Synchronet 3.21b-Linux NewsLink 1.2