(网络转载)错误“操作必须使用一个可更新的查询”原因及解决办法
相信很多向我这样用Access来开发Web的朋友都碰见过这个问题
原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
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)
中的查询时,在执行这个查询是会出现该错误。
解决办法
1、win2k win2003 系统
问题应该是服务器数据库目录的写入权限没有设置好。
数据库目录 属性 安全 EVERYONE ……给他写入权限就OK了。
2、winXP系统
XP操作系统安装好,文件夹选项里面默认使用简单共享(推荐),把这个选项去掉,
再在文件夹上右键点击,就会出现安全这个选项卡,
原来默认的没有,然后在安全选项卡里面可以设置用户的写入权限了
右击数据库>安全>everyone>将需要的勾上
意思就是系统不让更新数据库了,就是对数据库没有写入的权限了。
在2000或XP下的NTFS格式的文件,都有权限设置的,用鼠标右键点文件或文件夹选属性,架设你的网站是在webroot的文件夹里,你就会看到
这样的界面,再点安全就会看到:
这样的界面,你可以看看允许项有没有打钩。
上面的Everyone就是所有人的意思,你可以上这个用户组可以完全控制
那样就不会再有那个错误了。
分享到:
相关推荐
ACCESS数据库操作必须使用一个可更新的查询_解决办
ACCESS数据库操作必须使用一个可更新的查询解决办法.pdf
第 1 章 结构化查询语言 DM_SQL 简介 ....................................................................1 1.1 DM_SQL 语言的特点 ............................................................................
使用Access当数据库时,这个问题郁闷了我好几天啊![OleDbException (0x80004005): 操作必须使用一个可更新的查询。]
2.2 运行一个EJB3例子..................................................................................................................................................9 2.3 在独立的TOMCAT 中调用EJB.......
实验 #2 - 创建一个新的数据库............................................................................................43 4.1 DB2配置....................................................................
怎样创建一个 MapGIS IGServer Flex 项目 ...................................................... 4 第 3 问 怎样使用 MapGIS IGServer Flex 功能组件 .................................................... 10...
2.9 高级子查询............................................ 1. 成对子查询:........................................... 2.层次查询................................................ 二、Management:..........
6.4 连接查询......................................................41 6.5 置换变量......................................................42 4 PL/SQL Developer 7.0 用户指南 6.6 更新数据库...................
使用查询. . . . . . . . . . . . . . . . . . . . . . . 70 应用现有查询. . . . . . . . . . . . . . . . . . . 70 创建查询 . . . . . . . . . . . . . . . . . . . . . 71 创建简单查询. . . . . . . . . . . . ...
第 6 章使用 Redis 实现 Twitter(上). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 前提条件(Prerequisites) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
一、SQL ...........................................................................................................................................................8 1.1、基本概念: ..................
1.3.7 不要给一个用户管所有的库,尽量专库专用户...............................................21 1.3.8 清理 mysql 操作日志文件~/mysql_history.........................................................21 ...
1.2.1.6.1 使用不等于操作符(、!=) ............................................................ 1.2.1.6.2 使用 IS NULL 或 IS NOT NULL ............................................................... ...
第11章 使用子查询...... 66 11.1 子查询..... 66 11.2 利用子查询进行过滤..... 66 11.3 作为计算字段使用子 查询..... 69 11.4 小结..... 71 第12章 联结表...... 72 12.1 联结..... 72 12.1.1 关系表..... 72 ...
1.增加 删除 更新 最后都必须要使用...2.查询(条件查询[id name ...] 全部查询) 必须使用到ResultSet结果集 3.public static void zsg(String sql,Object...p) 可以减少sql增加 删除 更新语句 直接传入sql和无穷个条件
测试14:一个大 DELETE之后的一个大INSERT.......................................... 30 测试15:一个大的DELETE及许多小INSERTs ........................................... 30 测试16:DROP TABLE..........
10、自定义查询(必须实现的方法).................................................................................26 4、表头-分录多表开发高级教程...........................................................
杂类功能模块一(音量邮件驱动器压缩).ec 树型框三级填充.ec 树型框增强.ec 树型框操作类.ec 树型框目录显示模块.ec 树型框移动.ec 树型框附加模块-edb版.ec 树型框附加模块-外部数据库版.ec 树型磁盘与文件浏览.ec ...