Asp教程

通过asp实例结合结合ACCESS,MSSQL来更好的深入Asp学习 - 爬坡者

« 先点击后下载的实现ASP动态include文件 »

ACCESS数据库操作必须使用一个可更新的查询错误

    Microsoft VBScript 编译器错误 错误 '800a03f6' 
    缺少 'End' 
    /iisHelp/common/500-100.asp,行242 
    Microsoft JET Database Engine 错误 '80004005' 
    操作必须使用一个可更新的查询。 
    /wz/addnews.asp,行16 

有几个主要的错误原因:

这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。

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)中的查询时,在执行这个查询是会出现该错误。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80710

Copyright 2007-2008 papozhe.com [asp教程] All Rights Reserved.
浙ICP备07030537号
免责申明:所有文章除特别声明,均来自网上,主要为学习用!内容仅供参考,版权归原作者。如侵犯您利益,请来信告知.
Email:papozhe$Gmail.com QQ:76336503