錯誤“操作必須使用一個可更新的查詢”原因及解決辦法

錯誤信息:
       Microsoft OLE DB Provider for ODBC Drivers error '80004005'
       [Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an
       updateable query.
原因:
       有幾個主要的錯誤原因:
       這個錯誤發生在當你的程序試圖執行更新數據庫或其它類似操作時。這是因爲
       ADO由於以下的幾個原因而不能夠寫數據庫造成的。

     0 . 數據文件只讀?


       1。最普遍的原因是匿名用戶帳號(IUSR_MACHINE)對該數據庫文件沒有寫權限。
          要解決這個問題,在管理器中調整數據庫文件的屬性,讓匿名用戶有正確的權限。
          當使用ACCESS數據庫時,不僅要給文件寫的權限,還要給該目錄寫 的權限,因爲
          Jet需要在該目錄建立一個.ldb文件。
       2。第二個原因是數據庫沒有使用正確的模式打開。應該使用下面的方法打開。
             SQL = "UPDATE Products Set UnitPrice = 2;"
             Set Conn = Server.CreateObject("ADODB.Connection")
             Conn.Mode = 3      '3 = adModeReadWrite
             Conn.Open "myDSN"
             Conn.Execute(SQL)
             Conn.Close
           注意默認的Mode是設置0(adModeUnknown),它是允許更新的。
       3。還有可能是在ODBC管理器中將該DSN的只讀選項選中。
       4。你是在同時更新兩個表中的字段,也會出現這個錯誤信息,解決辦法是分開來更新
          這兩個表中各自字段。
       5。當你使用了一個從低版本中(如ACCESS2.0,ACCESS7.0)載入到高版本(ACCESS 2000)
           中的查詢時,在執行這個查詢是會出現該錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章