win7或者WIN10_64位系統調試程序出現[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱并且未指定默認驅動程序的解決辦法
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
今天調試一個客戶的asp+acc程序的時候,提示 [Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱并且未指定默認驅動程序?
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱并且未指定默認驅動程序
/login.asp,行 24
問題原因:
64位操作系統不支持Microsoft OLE DB Provider for Jet驅動程序,也不支持更早的Microsoft Access Driver (*.mdb)方式連接。所以,程序里面的鏈接字符串不能正常工作。需要修改下IIS的工作環境,改成32位的,在IIS的管理界面中,把應用程序池中的默認應用程序池常規選項中的32位方式啟用就可以了。
解釋如下,以及為什么要選擇X86:
win7 64位操作系統有兩個ODBC數據源(一個在system32下odbcad32.exe(控制面板-管理工具里的是這個),一個在SysWOW64下odbcad32.exe)
在win764位操作系統中運行程序,默認是在system32里去找驅動,因為64位操作系統要跟過去的32位系統兼容,當運行32位的程序時,系統會到SysWOW64下面去找,所以就解決了ODBC的驅動問題,前提是電腦已經裝過驅動了哈;
64位 Win7? ?下Access的 ODBC連接
直接在? 控制面板---管理工具----數據源(ODBC)? 打開數據源配置,發現只有SQLServer的驅動,其他的都沒有了。
解決方法如下:
C:/Windows/SysWOW64? 在這個目錄下找到:? odbcad32.exe? 這個文件,雙擊打開,具體看以下:
里面有很多可用個數據源驅動,然后就可用添加連接Access的ODBC的數據源,就是這么簡單;
中間可能出現的問題:
Access?Connect?Fail!
"[Microsoft][ODBC?驅動程序管理器]?未發現數據源名稱并且未指定默認驅動程序?QODBC3:?Unable?to?connect"
解決方式如下:
之所以回報如下異常,是因為在Qt中setDatabaseName(dns),如果dns字符串不正確的話就會報那種異常。
異常為:
[Microsoft][ODBC?驅動程序管理器]?未發現數據源名稱并且未指定默認驅動程序?QODBC3:?Unable?to?connect
dns錯誤的原因為目前我的電腦為win7?64位,
系統默認的數據源配置驅動為:Microsoft?Access?Driver?(*.mdb,?*.accdb)
(注意:空格一定不能少)
而在網上搜到的各種Qt連接access的例子中?驅動為:Microsoft?Access?Driver?(*.mdb)
解決辦法:
查看本機數據源中access對應的驅動,在?dns?字符串中將?DRIVER?的值替換相應驅動就行了。
PS:延伸閱讀,設置的時候,IIS可能會也讓給予32位應用程序池,具體請參考以下文章:
windows7運行asp程序DNS時 Microsoft OLE DB Provider for ODBC Drivers 錯誤 ‘80004005’解決方案
以下是出現80004005錯誤另類的解決方式,以下都僅供參考;
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!