摘要:當ASP使用Access資料庫只能讀取無法維護的問題
經常有網友問到....
使用ASP在維護資料庫的時候,會發生
- 資料庫是唯讀的
- 運作必須使用更新查詢
當遇到這樣的狀況時,可能有兩個原因
一是權限問題,另一則是Connection String中的Jet 版本設定不正確
權限問題:
ASP上的使用者在透過ADO存取資料庫的時候,是透過IUSER這個使用者來存取主機上的資源的,但是因為安全性的關係,所以IUSER通常權限都粉低,此時如果您的mdb存放的位置沒有開放給IUSER作資料庫的存取的話,那麼就可能造成這個問題
要解決這個問題的方式,就是1.檢查mdb的唯讀是否有取消2.將mdb資料夾分享給IUSER作存取
相關的動作操作可以參考以下這兩篇文章
http://www.blueshop.com.tw/article/show.asp?cde=ATL20050824185315P09
http://www.blueshop.com.tw/article/show.asp?cde=ATL20050824190443EUL
Connection String中的Jet 版本設定不正確:
如果確定了【權限問題】處理了,卻還是無法維護,那麼就要檢查一下您的Connection String是否有做正確的設定。如果您的主機上對於Jet的存取版本有兩個以上(Jet3.5→Access97,Jet4.0→Access2000)
那麼如果您沒有正確的指定用哪個版本來存取,就有可能會造成無法維護的狀況要解決這個問題,首先要知道您的mdb是屬於哪一個版本,接著就是設定正確的Connection String了
Access97 ConStr97="Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & Server.MapPath("db/abc.mdb")
Access2000以後 ConStr2K="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/abc.mdb") & ";Persist Security Info=False"
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |