sql >> データベース >  >> RDS >> Oracle

VBSとレジストリを使用して、インストールされているバージョンと32ビットと64ビットのOracleドライバを判別する

    VBSコードによると、質問は次のようになります。 VBSとレジストリを使用して、 ODBCのバージョンと32ビットと64ビットを判別する ドライバがインストールされています

    Oracleで利用できる他の多くのドライバがあります。 OleDB、ODP.NET、JDBCなど。

    32ビットと64ビットを取得するには、2つの方法で実行できます

    別のスクリプトホストでVBSを実行します。つまり、

    For 64 Bit: >c:\Windows\system32\cscript.exe Drivers.vbs
    For 32 Bit: >c:\Windows\SysWOW64\cscript.exe Drivers.vbs
    

    または、レジストリの32ビットパスと64ビットパスを調べるためにVBSスクリプトを変更します。

    strComputer = "."
    Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
    
    strKeyPath = "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
    objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes
    
    For i = 0 to UBound(arrValueNames)
        strValueName = arrValueNames(i)
        objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue    
        Wscript.Echo arrValueNames(i) & " -- 64 Bit " & strValue
    Next
    
    strKeyPath = "SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers"
    objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes
    
    For i = 0 to UBound(arrValueNames)
        strValueName = arrValueNames(i)
        objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue    
        Wscript.Echo arrValueNames(i) & " -- 32 Bit " & strValue
    Next
    

    別の注意:TNS_ADMIN およびORACLE_HOME 環境変数で定義できますが、レジストリでも定義できます。 64ビットを確認してください

    HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN 
    and 
    HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME
    

    および32ビットの場合

    HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN
    and
    HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME
    



    1. MicrosoftAccessのレポートにヘッダーとフッターを追加する方法

    2. Hibernate-整数型への正しいマッピングを提供する方法は?

    3. SQLでリテラルテーブルを定義できますか?

    4. .NETまたはMSSQLを使用したMySqlのpassword()暗号化のシミュレーション