PRB:ASP 返回“Operation Must Use an Updateable Query”(操作必須使用可更新的查詢)錯誤

來源:互聯網
上載者:User
癥狀

當您將 ActiveX 資料對象 (ADO) 與 Active Server Pages (ASP) 一起使用時,可能會遇到以下常見錯誤:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an updateable query.
回到頂端
原因

本文闡述導致此錯誤的四種主要原因及相應的替代方法。儘管本文討論的是 Microsoft Access 資料庫,但此處提供的資訊也適用於其他類型的資料庫。

回到頂端
解決方案

當您的指令碼試圖執行更新或執行會更改資料庫中的資訊的其他某種操作時,通常會遇到此錯誤。出現此錯誤的原因是 ADO 由於以下某種原因而無法寫入資料庫:

1. 最常見的原因是 Internet 來賓帳戶(IUSR_MACHINE,預設情況下該帳戶屬於“Everyone”組)對資料庫檔案 (.mdb) 沒有寫入權限。要解決此問題,請使用 Explorer 中的“安全”選項卡來調整此檔案的屬性,以便 Internet 來賓帳戶具有正確的許可權。

注意:在將 Microsoft Access 資料庫與 ADO 一起使用時,還必須授予 Internet 來賓帳戶對包含 .mdb 檔案的目錄的寫入權限。這是因為 Jet 會建立一個用於處理資料庫鎖定的 .ldb 檔案。由於 Jet 可能會在“Temp”目錄中建立臨時檔案,因此您可能還需要授予對該檔案夾的讀/寫入權限。

2. 出現此錯誤的第二個原因是資料庫不是使用具有寫入權限的正確模式開啟的。如果您對 Connection 對象執行 Open 操作,則應使用 Mode 屬性指示對該串連所擁有的許可權,如下所示:

      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. 最後一個問題和替代方法適用於所有 SQL 資料來源。違反資料庫的參考完整性的 SQL 陳述式可以導致出現此錯誤。下面是一些最常見的失敗的查詢:
其中最簡單的一組查詢是以下您無法更改的查詢:UniqueValue 屬性設定為 Yes 的交叉資料表查詢、SQL 傳遞查詢、聯集查詢或更新(即產生表)操作查詢。

另一種非常常見的原因是聯結包含的連結 ODBC 表的索引不是唯一的。在這種情況下,SQL 無法保證表中的記錄是唯一,該表中欄位的值將隨查詢發生更改。

有一種原因確實有可靠的替代方法。如果您嘗試更新“一對多”查詢的“一”方的聯結欄位,操作將會失敗,除非您啟用串聯更新。因為這樣您就可以將參考完整性委託給 JET 引擎。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.