Как проверить версию провайдера oracle для ole-db. OraOLEDB.Oracle провайдер - PullRequest
0 голосов
/ 23 января 2019

Как проверить версию провайдера oracle для ole-db.OraOLEDB.Oracle провайдера на windows 10 и windows 7?

1 Ответ

0 голосов
/ 23 января 2019

Вы можете использовать, например, инструмент RegDllView .Ищите «OraOLEDB», результат может быть следующим:

enter image description here

Более простой подход - это перейти в каталог ORACE_HOME\bin и найти файл OraOLEDB??.dll.Проверьте версию, щелкнув правой кнопкой мыши -> Свойства -> Подробности.

Однако вы просто получаете версию файла, это не обязательно означает, что эта DLL также зарегистрирована и готова к использованию.

Или используйте этот VBScript:

Option Explicit
Const HKEY_CLASSES_ROOT = &H80000000

Dim Key, strComputer, objRegistry, strPath, arrKeys, fso
Dim strKeyPath, strValueName, strValue, uValue, ver

Set fso = CreateObject("Scripting.FileSystemObject")

strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.enumKey HKEY_CLASSES_ROOT, "CLSID", arrKeys

For Each key In arrKeys
    strKeyPath = "CLSID\" & key
    strValueName = "OLEDB_SERVICES"
    If objRegistry.GetDWordValue (HKEY_CLASSES_ROOT, strKeyPath, strValueName, uValue) = 0 Then  
        'get the (Default) value which is the name of the provider
        objRegistry.GetStringValue HKEY_CLASSES_ROOT, strKeyPath, "", strValue
        If InStr(1, strValue, "OraOLEDB.Oracle", vbTextCompare) > 0 Then
            ' get expanded location
            objRegistry.GetStringValue HKEY_CLASSES_ROOT, strKeyPath & "\InprocServer32", "", strPath

            ver = fso.GetFileVersion(strPath)
            Wscript.Echo strValue & " @ " & strPath & " -> " & ver
        End If
    End If 
Next

Поставщик OLE DB может существовать в 32-битном или / и в 64-битном режиме, поэтому вы можете выполнить скрипт дважды:

C:\Windows\System32\cscript.exe Print_OLE.vbs
C:\Windows\SysWOW64\cscript.exe Print_OLE.vbs
...