Theo mã VBS của bạn, câu hỏi phải là: Sử dụng VBS và sổ đăng ký để xác định phiên bản nào và phiên bản 32 so với 64 bit của ODBC trình điều khiển được cài đặt
Có nhiều trình điều khiển khác có sẵn cho Oracle, ví dụ:OleDB, ODP.NET, JDBC, v.v.
Để có được 32 và 64 bit, bạn có thể thực hiện theo hai cách
Chạy VBS trong máy chủ tập lệnh khác, tức là
For 64 Bit: >c:\Windows\system32\cscript.exe Drivers.vbs
For 32 Bit: >c:\Windows\SysWOW64\cscript.exe Drivers.vbs
Hoặc sửa đổi tập lệnh VBS để thẩm vấn đường dẫn 32 và 64 Bit trong Registry:
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
Một lưu ý khác:TNS_ADMIN
và ORACLE_HOME
có thể được định nghĩa bởi biến môi trường, tuy nhiên bạn cũng có thể định nghĩa chúng trong Registry. Kiểm tra 64 bit
HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN
and
HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME
và cho 32 bit
HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN
and
HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME