请问为什么在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”
...全文
206 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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是否有写入的权限.

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧