關於ASP訪問ACCESS資料的錯誤的探討

來源:互聯網
上載者:User

前天,N久以前做的一個Access資料庫的程式出錯了,程式都沒有改動過,之前好好的,突然就不行了。

  錯誤資訊如下:

  ----------------------------------

  Microsoft OLE DB Provider for ODBC Drivers 錯誤 ''80004005''

   [Microsoft][ODBC Microsoft Access Driver]常見錯誤 不能開啟註冊表關鍵字 ''Temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 Jet''。

  ----------------------------------

  

  由於最近一台伺服器被人攻擊垮掉了正在重裝,沒時間理這個問題。後來在朋友(是該程式的使用者哦)的多翻催促下,決定搞定它。

  一開始,還真不摸不清是怎麼回事。在GOOGLE上搜了很多,眾說紛紜,過濾去一堆沒有結果的垃圾資訊,得到下面幾個可能原因:

   1。微軟已經不更新ODBC,需要改用JET的方式串連Access資料庫檔案;

  2。系統目錄的許可權發生的變更。

  也有老文章說什麼原因是:“Access資料庫檔案是ACCESS97版本的”,這個無須考慮,我用的是ACCESS2000資料庫。

  

  對於第一個原因,原來的串連字串如下:

  --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"

  -------------------------------------

  

  測試過後無效,雖然提示的錯誤資訊有點不同:

  ----------------------------------

  Microsoft JET Database Engine 錯誤 ''80004005'' 未指定的錯誤

  ----------------------------------

  

  最後檢查第二個原因:系統目錄許可權不足。經詢問,原來由於出於安全的考慮一同事把該伺服器的WINNT目錄設定為 Administrators、system “完全控制”,users 唯讀。

  但是,按道理,這樣的使用權限設定,ODBC的驅動程式處於 winnt/system32/odbcjt32.dll 這個也是可讀的,難道是因為缺少“執行”許可權?

  我把 winnt/system32/目錄下所有以odbc開頭的DLL檔案全部授予“執行”許可權,發現還是一樣的錯誤資訊。跟著我索性把整個 system32 目錄設成 everyone 可執行,可是一測試依然不行。

  難道是還有其他檔案被ODBC或JET調用但又不在這個system32目錄下且又沒有得到充分授權而導致失敗?

  正在想的時候,驀然瞥見 winnt/temp 目錄。嘿,我把 temp 目錄設定成 everyone 可“寫入”看看。

  一測試,嘿,成了。使用ODBC串連方式的程式,成功的讀取更新Access資料庫中的記錄。
  

  有意思的是,使用JET串連方式的程式,卻報另一個錯誤:

  -------------------------------------------

  Microsoft JET Database Engine 錯誤 ''80040e4d'' 無法啟動應用程式。

  工作群組資訊檔案丟失,或是已被其它使用者以獨佔方式開啟。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.