2016-12-07 98 views
0

我使用的ASP(VBScript)的是連接到MySQL,但我不知道ODBC驅動程序的版本。我沒有訪問服務器管理和Windows註冊表,以便:如何測試MySQL ODBC驅動程序的版本編程

1 - 我想找到ODBC的版本程序(或可能通過在phpMyAdmin SQL命令?)。

2-然而作爲一個可能的解決方案,我想通過各種連接字符串可能有助於循環。我如何傳遞錯誤並找到合適的連接字符串?連接字符串是否有回調或False/True返回?

可能的連接字符串:

set objcon = Server.CreateObject ("ADODB.Connection")  
    objcon.connectionstring = "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=****;Database=****;User=****;Password=****;Option=3;" 
    objcon.connectionstring = "Driver={MySQL ODBC 5.1 Driver};Server=****;Database=****;User=****;Password=****;Option=3;" 
    objcon.connectionstring = "Driver={MySQL ODBC 3.51 Driver};Server=****;Database=2558_academy;User=****;Password=****;Option=3;" 
+0

你是否已經嘗試過解決方案W /註冊表通Winmgmt的?據我所知,這不需要特權升級,只需要對註冊表擁有隻讀權限。 –

回答

1
set filepath=%~f1 
set file=%filepath:\=\\% 
wmic datafile where name^="%file%" get version|findstr /i /v /c:"version" 
echo %errorlevel% 

使用WMI,其中任何COM語言可以使用批處理文件。將驅動程序文件作爲參數傳遞給批處理文件。

1

如果要連接到MySQL數據庫沒有確切的知識WRT安裝的驅動程序,你應該遍歷可能的連接字符串的列表,並嘗試他們,直到他們的第一個成功。

有一個開放的連接,您可以解析連接字符串或使用連接的合適性。

在代碼:

Dim oCnct : Set oCnct = CreateObject("ADODB.Connection") 
    Dim sDrv 
    For Each sDrv In Split("Complete nonsense|MySQL ODBC 5.1 Driver|MySQL ODBC 9.9 Driver", "|") 
     WScript.Echo sDrv 
    On Error Resume Next 
     oCnct.Open Replace("Driver={§};Server=gent;Database=pi;User=pa;Password=po;Option=3;", "§", sDrv) 
     If 0 = Err.Number Then 
     Exit For 
     Else 
     WScript.Echo "Error:", Err.Description 
     End If 
    On Error Goto 0 
    Next 
    If oCnct.State = adStateOpen Then 
    WScript.Echo "Connected to MySQL using", sDrv 
    Dim sProp 
    For Each sProp In Split("Driver Version|Driver ODBC Version", "|") 
     WScript.Echo oCnct.Properties(sProp).Name & ":", oCnct.Properties(sProp).Value 
    Next 
    oCnct.Close 
    Else 
    WScript.Echo "Failed to connected to MySQL" 
    End If 

輸出:

Complete nonsense 
Error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 
MySQL ODBC 5.1 Driver 
Connected to MySQL using MySQL ODBC 5.1 Driver 
Driver Version: 05.01.0005 
Driver ODBC Version: 03.51 
0

雖然你可能無法打開註冊表,您可以查詢通的winmgmts服務。您可以根據自己的喜好進行修改...讓我知道它是否有效。否則,有可能是

for each key in split("SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers,x86|SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers,x64", "|") 
    strKeyPath=split(key, ",")(0) 
    arch=split(key, ",")(1) 
    Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv") 
    objRegistry.EnumValues &H80000002, strKeyPath, arrValueNames, arrValueTypes 
    For i = 0 to UBound(arrValueNames) 
     strValueName = arrValueNames(i) 
     objRegistry.GetStringValue &H80000002,strKeyPath,strValueName,strValue 
     Wscript.Echo "[" & arch & "] "& strValue & " " & arrValueNames(i) 
    Next 
Next 

,如果你給出了一個關於安裝連接器本身在文件系統中的詳細信息可能更容易也編程方式檢測。

C:\Windows\System32\odbcad32.exe - GUI tool for seeing the drivers 
cd /d "C:\Program Files" 
dir /s /b *odbc*dll | find /I "MySQL" 

一旦你找到MySQL的正確的ODBC DLL文件,通常可以從文件夾路徑的readme.txt文件的頂部線刮驅動程序版本。