一个奇怪问题。请教下大家。

langya001 2004-10-07 10:49:47
我在本机(2000系统)调试程序没错、上传到服务器(2003)上后运行程序,出现
Microsoft JET Database Engine 错误 '80004005'

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

/admin/VNews.asp,行 14


14行的语句是
conn.execute "update DATA set DATANAME='"&DATANAME&"',DATACLASS='"&DATACLASS&"',DATAURLC='"&DATAURLC&"',DATAURL='"&DATAURL&"',DATAMAIL='"&DATAMAIL&"',DATATEL='"&DATATEL&"',DATAFAX='"&DATAFAX&"',DATAINFOR='"&DATAINFOR&"' where D_ID=" & request("D_ID")


谢谢
...全文
102 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeno 2004-10-08
  • 打赏
  • 举报
回复
数据字段中屏蔽了非空值,而更新操作又没有给非空字段赋值,所以显示:操作必须为一个可更新的查询


这样的问题多数出在SQL语句本身上(给非空字段赋空值),所以数据库设计要求规范化
xiaoyuehen 2004-10-07
  • 打赏
  • 举报
回复
操作必须使用一个可更新的查询。说明SQL语句本身并没有问题..

检查数据库所在目录的读写权限.
tpf9000 2004-10-07
  • 打赏
  • 举报
回复
Set rs= Server.CreateObject("ADODB.Recordset")
sql="update DATA set DATANAME='"&DATANAME&"',DATACLASS='"&DATACLASS&"',DATAURLC='"&DATAURLC&"',DATAURL='"&DATAURL&"',DATAMAIL='"&DATAMAIL&"',DATATEL='"&DATATEL&"',DATAFAX='"&DATAFAX&"',DATAINFOR='"&DATAINFOR&"' where D_ID=" & request("D_ID")
rs.open sql,conn,1,3
换一种写法试试
langya001 2004-10-07
  • 打赏
  • 举报
回复
谢谢。流光鸟兄。可惜还是不行。
tpf9000 2004-10-07
  • 打赏
  • 举报
回复
data是不是关键字啊,加上[DATA]看看,调试嘛,慢慢来
langya001 2004-10-07
  • 打赏
  • 举报
回复
流光鸟兄。SQL语句应该没问题呀。我本机都OK。

麒麟.NET谢谢。可惜不行。同样的错误信息。唉
kirinboy 2004-10-07
  • 打赏
  • 举报
回复
chnexuchen兄,不行。我覆盖了后出现
Microsoft VBScript 编译器错误 错误 '800a0408'

无效字符

/admin/VData.asp,行 21

conn.execute("update DATA set DATANAME='"&DATANAME&"',DATACLASS='"&DATACLASS&"',DATAURLC='"&DATAURLC&"',DATAURL='"&DATAURL&"',DATAMAIL='"&DATAMAIL&"',DATATEL='"&DATATEL&"',DATAFAX='"&DATAFAX&"',DATAINFOR='"&DATAINFOR&"' where D_ID=" & request("D_ID"))



——————————————————————————————————
把括号改成半角
tpf9000 2004-10-07
  • 打赏
  • 举报
回复
data会不会是关键字啊
tpf9000 2004-10-07
  • 打赏
  • 举报
回复
MicrosoftVBscript编译器错误(0x800A0408)-->sql语句错误
kirinboy 2004-10-07
  • 打赏
  • 举报
回复
数据连接不是可更新的
langya001 2004-10-07
  • 打赏
  • 举报
回复
流光鸟兄。我本机调试没问题呀。难道是服务器的数据库问题?可别的部分正常运行呀。郁闷

chnexuchen兄,不行。我覆盖了后出现
Microsoft VBScript 编译器错误 错误 '800a0408'

无效字符

/admin/VData.asp,行 21

conn.execute("update DATA set DATANAME='"&DATANAME&"',DATACLASS='"&DATACLASS&"',DATAURLC='"&DATAURLC&"',DATAURL='"&DATAURL&"',DATAMAIL='"&DATAMAIL&"',DATATEL='"&DATATEL&"',DATAFAX='"&DATAFAX&"',DATAINFOR='"&DATAINFOR&"' where D_ID=" & request("D_ID"))
----------^
yeno 2004-10-07
  • 打赏
  • 举报
回复
原则上2000下能用的在2003下都没问题……

唯一需要更改的地方就是启用2003中的ASP及父路径

楼主的可能是数据库的权限问题,首先请检查数据库属性是否变为了“只读”
chenxuchen 2004-10-07
  • 打赏
  • 举报
回复
conn.execute "update DATA set DATANAME='"&DATANAME&"',DATACLASS='"&DATACLASS&"',DATAURLC='"&DATAURLC&"',DATAURL='"&DATAURL&"',DATAMAIL='"&DATAMAIL&"',DATATEL='"&DATATEL&"',DATAFAX='"&DATAFAX&"',DATAINFOR='"&DATAINFOR&"' where D_ID=" & request("D_ID")
改成
conn.execute("update DATA set DATANAME='"&DATANAME&"',DATACLASS='"&DATACLASS&"',DATAURLC='"&DATAURLC&"',DATAURL='"&DATAURL&"',DATAMAIL='"&DATAMAIL&"',DATATEL='"&DATATEL&"',DATAFAX='"&DATAFAX&"',DATAINFOR='"&DATAINFOR&"' where D_ID=" & request("D_ID"))
试试看

tpf9000 2004-10-07
  • 打赏
  • 举报
回复
MicrosoftOLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值)
MicrosoftOLEDBProviderforODBCDrivers(0x80004005) -->打开数据库出错,没有在指定目录发现数据库

28,391

社区成员

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

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