热搜词
发表于 2006-11-5 11:34:02 | 显示全部楼层 |阅读模式
<P align=center>错误“操作必须使用一个可更新的查询”原因及解决办法</P><P>今天又遇到这样一个错误“操作必须使用一个可更新的查询”这里我整理下原因及解决办法,大家以后再遇到相同的问题可以先试下类似的解决办法.</P><P>错误信息: <BR>Microsoft OLE DB Provider for ODBC Drivers error &#39;&#39;80004005&#39;&#39; <BR>[Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an <BR>updateable query. <BR>或者是: <BR>Microsoft JET Database Engine (0x80004005) <BR>操作必须使用一个可更新的查询。 </P><P>原因: <BR>有几个主要的错误原因: <BR>这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为 <BR>ADO由于以下的几个原因而不能够写数据库造成的。 <BR>1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。 <BR>要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。 <BR>当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为 <BR>Jet需要在该目录建立一个.ldb文件。 <BR>2。第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。 <BR>SQL = "UPDATE Products Set UnitPrice = 2;" <BR>Set Conn = Server.CreateObject("ADODB.Connection") <BR>Conn.Mode = 3 &#39;&#39;3 = adModeReadWrite <BR>Conn.Open "myDSN" <BR>Conn.Execute(SQL) <BR>Conn.Close <BR>注意默认的Mode是设置0(adModeUnknown),它是允许更新的。 <BR>3。还有可能是在ODBC管理器中将该DSN的只读选项选中。 <BR>4。你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新 <BR>这两个表中各自字段。 <BR>5。当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000) <BR>中的查询时,在执行这个查询是会出现该错误。 </P><P>如果是winXP系统</P><P>&nbsp;&nbsp;&nbsp; 一般来说,这个问题会发生在磁盘格式为NTFS的情况下,由于这个格式加入了安全性的控制,但是在XP的系统下文件夹的被默认为“默认共享”,在“属性”选项卡里是找不到“安全性”这项的。因此应该更改这项设置。方法叙述如下:<BR>&nbsp;&nbsp;&nbsp; 打开任意一个文件目录,点击“工具”-&gt;“文件夹选项”-&gt;“查看”,找到“使用简单文件共享(推荐)”这项,把前面的勾去掉。<BR>&nbsp;&nbsp;&nbsp; 在网站所在文件夹上单击右键,选择“属性”,这时就能找到“安全”的选项卡,添加一个用户Everyone,权限设为“完全控制”,这样任何人都对你的网站目录有读写权限了,问题得以解决。</P><P><BR>&nbsp;</P>
全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-25 09:26 , Processed in 0.158212 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team