最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

ASP 返回“Operation Must Use an Updateable Query”(操作必须使用可更新的查询)错误

日期:01-17    来源:中国设计秀    作者:cnwebshow.com

症状tBf中国设计秀
当您将 ActiveX 数据对象 (ADO) 与 Active Server Pages (asp) 一起使用时,可能会遇到以下常见错误: tBf中国设计秀
Microsoft OLE DB PRovider for ODBC Drivers error '80004005' tBf中国设计秀
[Microsoft][ODBC Microsoft access 97 Driver] Operation must use an updateable query.tBf中国设计秀

原因tBf中国设计秀
本文阐述导致此错误的四种主要原因及相应的替代方法。尽管本文讨论的是 Microsoft Access 数据库,但此处提供的信息也适用于其他类型的数据库。tBf中国设计秀

解决方案tBf中国设计秀
当您的脚本试图执行更新或执行会更改数据库中的信息的其他某种操作时,通常会遇到此错误。出现此错误的原因是 ADO 由于以下某种原因而无法写入数据库:tBf中国设计秀

1. 最常见的原因是 Internet 来宾帐户(IUSR_MACHINE,默认情况下该帐户属于“Everyone”组)对数据库文件 (.mdb) 没有写权限。要解决此问题,请使用 Explorer 中的“安全”选项卡来调整此文件的属性,以便 Internet 来宾帐户具有正确的权限。tBf中国设计秀

注意:在将 Microsoft Access 数据库与 ADO 一起使用时,还必须授予 Internet 来宾帐户对包含 .mdb 文件的目录的写权限。这是因为 Jet 会创建一个用于处理数据库锁定的 .ldb 文件。由于 Jet 可能会在“Temp”目录中创建临时文件,因此您可能还需要授予对该文件夹的读/写权限。 tBf中国设计秀
2. 出现此错误的第二个原因是数据库不是使用具有写权限的正确模式打开的。如果您对 Connection 对象执行 Open 操作,则应使用 Mode 属性指示对该连接所拥有的权限,如下所示: tBf中国设计秀
      SQL = "UPDATE Products Set UnitPrice = 2;"tBf中国设计秀
            Set Conn = Server.CreateObject("ADODB.Connection")tBf中国设计秀
            Conn.Mode = 3      '3 = adModeReadWritetBf中国设计秀
            Conn.Open "myDSN"tBf中国设计秀
            Conn.Execute(SQL)tBf中国设计秀
            Conn.ClosetBf中国设计秀
            tBf中国设计秀
注意:默认情况下,MODE 设置为 0(adModeUnknown),该值通常允许更新。 tBf中国设计秀
3. 出现此错误的另一个原因是:在 ODBC 管理器中,DSN 的“选项”页中的“只读”设置可能被选中。 tBf中国设计秀
4. 最后一个问题和替代方法适用于所有 SQL 数据源。违反数据库的引用完整性的 SQL 语句可以导致出现此错误。下面是一些最常见的失败的查询:tBf中国设计秀
• 其中最简单的一组查询是以下您无法更改的查询:UniqueValue 属性设置为 Yes 的交叉表查询、SQL 传递查询、联合查询或更新(即生成表)操作查询。tBf中国设计秀

 tBf中国设计秀
• 另一种非常常见的原因是联接包含的链接 ODBC 表的索引不是唯一的。在这种情况下,SQL 无法保证表中的记录是唯一,该表中字段的值将随查询发生更改。tBf中国设计秀

 tBf中国设计秀
• 有一种原因确实有可靠的替代方法。如果您尝试更新“一对多”查询的“一”方的联接字段,操作将会失败,除非您启用级联更新。因为这样您就可以将引用完整性委托给 JET 引擎。 tBf中国设计秀

本文引用地址:/bc/article_46444.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明