操作必须使用一个可更新的查询

原创 2007年09月27日 10:04:00

操作必须使用一个可更新的查询 

错误“操作必须使用一个可更新的查询”原因及解决办法
翻译得比较匆忙,呵呵。
错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an
updateable query.
或者是:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。

原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
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)
中的查询时,在执行这个查询是会出现该错误。

Access update语句 提示 "操作必须使用一个可更新的查询"

当在access中使用update语句时如果遇到"操作必须使用一个可更新的查询"提示信息,通常时权限设置问题但是有一种情况非常特殊,举例如下:表A(col1, col2) 表B(col1, col2...
  • bingdian37
  • bingdian37
  • 2007年09月24日 19:56
  • 9379

操作必须使用一个可更新的查询

操作必须使用一个可更新的查询
  • cnso2
  • cnso2
  • 2014年09月29日 16:59
  • 1744

连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决

C#使用oledb连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决办法 我发生错误时的环境:Windows 7,Framework 4、0,Micr...
  • u011555996
  • u011555996
  • 2016年10月06日 12:09
  • 718

C#使用oledb连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决办法

我发生错误时的环境:Windows 7,Framework 4、0,Microsoft Office 2007,VS2010,c# WinForm;部分代码: s...
  • testcs_dn
  • testcs_dn
  • 2014年05月10日 18:37
  • 14337

Microsoft Access 操作必须使用一个可更新的查询

错误提示: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access ...
  • kelonsen
  • kelonsen
  • 2013年04月28日 14:17
  • 618

【MySQL】MySQL函数、自定义函数、存储过程

Mysql运算符和函数 字符函数 删除指定字符串 删除前指定字符串 删除后续的 删除前后的 字符串替换 截取字符串,mysql中字符从...
  • u010583599
  • u010583599
  • 2016年09月13日 13:31
  • 862

机房重构——Pramaters_变量名 '@UserID' 已声明。变量名在查询批次或存储过程内部必须唯一

背景:这两天一直在弄登陆和退出的工作记录的写入和修改,然而就在这两天出了这么一个错“变量名 '@UserID' 已声明。变量名在查询批次或存储过程内部必须唯一”,这是在下机的时候,写下机记录的时候出现...
  • tr1912
  • tr1912
  • 2016年01月29日 17:34
  • 1684

Java JDBC 学习笔记 - 可更新的结果集

读《Java核心技术》笔记。 虽然每天都在使用Hibernate,但是对JDBC只是在了解的层面,只知道建立连接可以在此基础上进行增删改查,今天读到JDBC可以在结果集的基础上实时操作,与数据库终...
  • p10614040
  • p10614040
  • 2015年08月14日 22:01
  • 992

SQLServer 可更新订阅数据冲突的一个原因

可更新订阅为什么有冲突? 可更新订阅中,当升级增加一个字段时,通常在发布服务器的发布数据库中增加,对表增加字段后,发布自动同步到订阅数据库中(复制架构更改=true)。但是,如果此时在订阅数据库进...
  • kk185800961
  • kk185800961
  • 2015年08月04日 10:11
  • 1492

我们为什么需要MapReduce?

我们为什么需要MapReduce?  我们为什么不能使用数据库来对大量磁盘上的大规模数据进行批量分析呢?我们为什么要使用MapReduce?       这些问题的答案来自磁盘的另一个发展趋势: ...
  • uniquewonderq
  • uniquewonderq
  • 2016年02月01日 15:46
  • 1071
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:操作必须使用一个可更新的查询
举报原因:
原因补充:

(最多只允许输入30个字)