请问为什么在ASP页面中操作ADO会失败,提示“操作必须使用一个可更新的查询。”

sproll 2004-12-02 04:39:59
我的代码是这样的:

'打开ACCESS数据库
strCnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "ASPDB.mdb;Persist Security Info=False"

Set cnnQuery = server.CreateObject("ADODB.Connection")
cnnQuery.Mode = 3'adModeReadWrite
cnnQuery.CursorLocation = 3'adUseClient
cnnQuery.Open strCnnStr

'打开用户表
Set rstMachine= server.CreateObject("ADODB.Recordset")
rstMachine.Open "SELECT * FROM MACHINE WHERE MACHINENAME='" & strMachineName & "'", cnnQuery, 2, 3, 1 ‘adOpenDynamic,adLockOptimistic,adCmdText

if rstMachine.RecordCount = 1 then
rstMachine.Fields("MACHINEIP") = strMachineIP
rstMachine.Update
nState = 0
elseif rstMachine.RecordCount = 0 then
nState = 1
elseif rstMachine.RecordCount > 1 then
nState = 2
elseif rstMachine.RecordCount < 0 then
nState = 3
end if

rstMachine.Close
cnnQuery.Close

ASP页面执行的结果是:
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft JET Database Engine 错误 '80004005'

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

/Default.asp,行37

行37就是“rstMachine.Update”
...全文
130 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sproll 2004-12-02
跪谢znjgress、lanren007及各位施援手的朋友!
问题找到了。是ACCESS数据库文件的访问权限的问题,EVERYONE没有写入权限。
  • 打赏
  • 举报
回复
任老先生 2004-12-02
可能就是权限的问题!
  • 打赏
  • 举报
回复
香椿炒鸡蛋 2004-12-02
游标类型错误,你用的是一个只读的游标,换为可写的
conn.execute("update tablename set ……")是个好办法
也可以这样

rs.open sql,conn,1,1
  • 打赏
  • 举报
回复
lzfxpuugv 2004-12-02
游标类型错误,你用的是一个只读的游标,换为可写的就行了,楼上的意见也不错
  • 打赏
  • 举报
回复
comszsoft 2004-12-02
游标设置可能有问题,建议你别这样更新, 容易出错,速度慢,参数不好设置,
还是用conn.execute("update tablename set ……")
较好
  • 打赏
  • 举报
回复
DARKNESSFALL 2004-12-02
rstMachine.Open "SELECT * FROM MACHINE WHERE MACHINENAME='" & strMachineName & "'", cnnQuery, 2, 3, 1 ‘adOpenDynamic,adLockOptimistic,adCmdText
--------------
有问题,全面检查一下
  • 打赏
  • 举报
回复
zzsdream 2004-12-02
Set rstMachine= server.CreateObject("ADODB.Recordset")
rstMachine.Open "SELECT * FROM MACHINE WHERE MACHINENAME='" & strMachineName & "'", cnnQuery, 1,3
  • 打赏
  • 举报
回复
chenyu112 2004-12-02
同意楼上
  • 打赏
  • 举报
回复
尚和空四 2004-12-02
是服务器权限的问题,修改一下属性即可
我以前遇到过
  • 打赏
  • 举报
回复
jnhfly 2004-12-02
sql语句出错(要插入或更新的字段的数值不能为空值)
MicrosoftOLEDBProviderforODBCDrivers(0x80004005) -->打开数据库出错,没有在指定目录发现数据库
  • 打赏
  • 举报
回复
lanren007 2004-12-02
你看看目录的权限问题.everyone是否有写入的权限.
  • 打赏
  • 举报
回复
发帖
ASP

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
帖子事件
创建了帖子
2004-12-02 04:39
社区公告
暂无公告