access不能打開注冊表關(guān)鍵字錯(cuò)誤處理方法(80004005錯(cuò)誤)
來源:程序員人生 發(fā)布時(shí)間:2013-10-11 17:05:54 閱讀次數(shù):3636次
錯(cuò)誤信息如下
Microsoft OLE DB Provider for ODBC Drivers 錯(cuò)誤
[Microsoft][ODBC Microsoft Access Driver]常見錯(cuò)誤 不能打開注冊表關(guān)鍵字 Temporary (volatile) Jet DSN for process x Thread x DBC xfb Jet
下面幾個(gè)可能原因
微軟已經(jīng)不更新ODBC需要改用JET的方式連接ACCESS數(shù)據(jù)庫文件
系統(tǒng)目錄的權(quán)限發(fā)生的變更
也有老帖子說什么原因是ACCESS數(shù)據(jù)庫文件是ACCESS版本的這個(gè)無須考慮我用的是ACCESS數(shù)據(jù)庫
對于第一個(gè)原因原來的連接字串如下
ODBC連接方式
mdbpath=serverMapPath(mymdbasp)
CnnStr = DBQ= & mdbpath & ;DRIVER={Microsoft Access Driver (*mdb)};uid=admin;pwd=
改用JET連接后連接字串為
JET連接方式
CnnStr = Provider=MicrosoftJetOLEDB;User Id=admin;Data Source=& mdbpath & ;Password=luntanbbs
測試過后無效雖然提示的錯(cuò)誤信息有點(diǎn)不同
Microsoft JET Database Engine 錯(cuò)誤 未指定的錯(cuò)誤
最后檢查第二個(gè)原因系統(tǒng)目錄權(quán)限不足經(jīng)詢問原來由于出于安全的考慮一同事把該服務(wù)器的WINNT目錄設(shè)置為 Administratorssystem 完全控制users 只讀
但是按道理這樣的權(quán)限設(shè)置ODBC的驅(qū)動程序處于 winntsystemodbcjtdll 這個(gè)也是可讀的難道是因?yàn)槿鄙?fp class='fp-vvmmw'>執(zhí)行權(quán)限?
我把 winntsystem目錄下所有以odbc開頭的DLL文件全部授予執(zhí)行權(quán)限發(fā)現(xiàn)還是一樣的錯(cuò)誤信息跟著我索性把整個(gè) system 目錄設(shè)成 everyone 可執(zhí)行可是一測試依然不行
難道是還有其他文件被ODBC或JET調(diào)用但又不在這個(gè)system目錄下且又沒有得到充分授權(quán)而導(dǎo)致失敗?
正在想的時(shí)候驀然瞥見 winnttemp 目錄嘿我把 temp 目錄設(shè)置成 everyone 可寫入看看
一測試嘿成了使用ODBC連接方式的程序成功的讀取更新ACCESS數(shù)據(jù)庫中的記錄
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈