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