關(guān)于ASP訪問ACCESS“不能打開注冊表”_Access數(shù)據(jù)庫教程
推薦:在窗體間傳遞參數(shù)的幾種常用辦法在實(shí)際開發(fā)應(yīng)用中,常常需要在窗體間傳遞參數(shù)。常用的幾種參數(shù)傳遞方法有如下幾種: 1、使用openargs 在調(diào)用的窗體使用如下語句: docmd.openform "被調(diào)用的窗體", , , , ,
前天,N久以前做的一個(gè)ACCESS數(shù)據(jù)庫的程序出錯(cuò)了,程序都沒有改動(dòng)過,之前好好的,突然就不行了。
錯(cuò)誤信息如下:
----------------------------------
Microsoft OLE DB Provider for ODBC Drivers 錯(cuò)誤 '80004005'
[Microsoft][ODBC Microsoft Access Driver]常見錯(cuò)誤 不能打開注冊表關(guān)鍵字 'Temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 Jet'。
----------------------------------
由于最近一臺(tái)服務(wù)器被人攻擊垮掉了正在重裝,沒時(shí)間理這個(gè)問題。后來在朋友(是該程序的用戶哦)的多翻催促下,決定搞定它。
一開始,還真不摸不清是怎么回事。在GOOGLE上搜了很多,眾說紛紜,過濾去一堆沒有結(jié)果的垃圾信息,得到下面幾個(gè)可能原因:
1。微軟已經(jīng)不更新ODBC,需要改用JET的方式連接ACCESS數(shù)據(jù)庫文件;
2。系統(tǒng)目錄的權(quán)限發(fā)生的變更。
也有老帖子說什么原因是:“ACCESS數(shù)據(jù)庫文件是ACCESS97版本的”,這個(gè)無須考慮,我用的是ACCESS2000數(shù)據(jù)庫。
對于第一個(gè)原因,原來的連接字串如下:
--ODBC連接方式------------------------
mdbpath=server.MapPath("my.mdb.asp")
CnnStr = "DBQ=" & mdbpath & ";DRIVER={Microsoft Access Driver (*.mdb)};uid=admin;pwd="
-------------------------------------
改用JET連接后連接字串為:
---JET連接方式---------------------
CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;Data Source="& mdbpath &" ';Password=luntanbbs"
-------------------------------------
測試過后無效,雖然提示的錯(cuò)誤信息有點(diǎn)不同:
----------------------------------
Microsoft JET Database Engine 錯(cuò)誤 '80004005' 未指定的錯(cuò)誤
----------------------------------
最后檢查第二個(gè)原因:系統(tǒng)目錄權(quán)限不足。經(jīng)詢問,原來由于出于安全的考慮一同事把該服務(wù)器的WINNT目錄設(shè)置為 Administrators、system “完全控制”,users 只讀。
但是,按道理,這樣的權(quán)限設(shè)置,ODBC的驅(qū)動(dòng)程序處于 winnt\system32\odbcjt32.dll 這個(gè)也是可讀的,難道是因?yàn)槿鄙?ldquo;執(zhí)行”權(quán)限?
我把 winnt\system32\目錄下所有以odbc開頭的DLL文件全部授予“執(zhí)行”權(quán)限,發(fā)現(xiàn)還是一樣的錯(cuò)誤信息。跟著我索性把整個(gè) system32 目錄設(shè)成 everyone 可執(zhí)行,可是一測試依然不行。
難道是還有其他文件被ODBC或JET調(diào)用但又不在這個(gè)system32目錄下且又沒有得到充分授權(quán)而導(dǎo)致失敗?
正在想的時(shí)候,驀然瞥見 winnt\temp 目錄。嘿,我把 temp 目錄設(shè)置成 everyone 可“寫入”看看。
一測試,嘿,成了。使用ODBC連接方式的程序,成功的讀取更新ACCESS數(shù)據(jù)庫中的記錄。
有意思的是,使用JET連接方式的程序,卻報(bào)另一個(gè)錯(cuò)誤:
-------------------------------------------
Microsoft JET Database Engine 錯(cuò)誤 '80040e4d' 無法啟動(dòng)應(yīng)用程序。
工作組信息文件丟失,或是已被其它用戶以獨(dú)占方式打開。
-------------------------------------------
嘿嘿,不知道這個(gè)JET的錯(cuò)誤又怎么回事呢?
有時(shí)間再搞搞它吧。如果你知道,請給我發(fā)個(gè)回復(fù)哦。 :-D
分享:啟動(dòng)命令行選項(xiàng)下表列出了 Microsoft ACCESS 的命令行選項(xiàng): 選項(xiàng) 效果 database 打開指定的 Microsoft Access 數(shù)據(jù)庫或 Microsoft ACCESS 項(xiàng)目。如果需要,可以包括路徑。如果運(yùn)行的是 Microsoft Windows
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個(gè)表并可更新對應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
Access數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫教程推薦
- 如何選擇適合自己的數(shù)據(jù)庫建立網(wǎng)站
- 十萬條Access數(shù)據(jù)表分頁的兩個(gè)解決方法
- Access數(shù)據(jù)庫安全的幾個(gè)問題
- 解答Perl下應(yīng)當(dāng)如何連接Access數(shù)據(jù)庫
- 淺談Access數(shù)據(jù)庫用另一種方式管理密碼
- 中文Access2000速成教程--1.8 定義表之間的關(guān)系
- 啟動(dòng)命令行選項(xiàng)
- 在VB中用代碼打印ACCESS報(bào)表
- Access數(shù)據(jù)庫的壓縮與修復(fù)
- 怎樣在Access報(bào)表中每隔N行顯示一條粗線
猜你也喜歡看這些
- Access數(shù)據(jù)庫開發(fā)技巧(二)
- Access中用Jet SQL語句刪除表關(guān)系
- 解析ACCESS改為SQL需要注意的地方
- 取得磁碟機(jī)之Volumn及Serial Number
- 揭秘WEB開發(fā)中防止ACCESS數(shù)據(jù)庫被下載的方法
- 關(guān)于ASP訪問ACCESS“不能打開注冊表”
- 中文Access2000速成教程--1.8 定義表之間的關(guān)系
- 長期使用中型Access數(shù)據(jù)庫的一點(diǎn)經(jīng)驗(yàn)
- 顯示數(shù)據(jù)庫窗口的捷徑
- 關(guān)于Access 2003開發(fā)者擴(kuò)展工具集的概述
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-關(guān)于ASP訪問ACCESS“不能打開注冊表”
。