主题:为什么不能用insert,update的查询语句
njsf_79
[专家分:0] 发布于 2007-07-05 13:14:00
我是 asp+access,使用sql语句insert into tablename (字段1) values ('字段值')的时候,报告出错:需要一个可更新的查询,使用update 语句也是这样,只能select 语句正常,这是怎么回事。我以前用这些语句时候都很正常,不得其解啊。
回复列表 (共15个回复)
沙发
merry05 [专家分:8920] 发布于 2007-07-05 15:34:00
上次我做也是一样,但是insert into tablename value (...)
整个记录插入不会报错滴
所以建议用ADO咯~~~~~~
板凳
wangsdong [专家分:21390] 发布于 2007-07-05 15:44:00
注意数据库中字段的“类型”和“是否允许空字符串”
3 楼
tianyu123 [专家分:2570] 发布于 2007-07-05 20:43:00
可能是访问权限问题,请参考:
[url=http://www.programfan.com/club/post-50760.html]http://www.programfan.com/club/post-50760.html[/url]
4 楼
merry05 [专家分:8920] 发布于 2007-07-05 21:15:00
我觉得2楼和3楼说的都不是什么主要原因,因为上次我在本地机上试权限和数据格式都注意到了,可是就是有一些SQL语句不能用。
无奈只能用ADO提供的方法~~~~~~~~~~
5 楼
hcn008 [专家分:380] 发布于 2007-07-06 02:47:00
可能三楼的才是主要原因,把代码帖一部分出来看看.
6 楼
longlong16 [专家分:10670] 发布于 2007-07-06 17:40:00
一般来讲就是权限!
7 楼
wuwangwo2007 [专家分:10] 发布于 2007-07-06 21:35:00
很重要的一点看看你的表明、列名是不是有关键字如有加[]
8 楼
njsf_79 [专家分:0] 发布于 2007-07-07 21:52:00
我是win2000server,权限是admin,是使用ado对象。
dim cndata
set cndata=server.createobject("adodb.connection")
cndata.open "dbq="&server.mappath("db.mdb")&";driver={microsoft access driver (*.mdb)}"
cndata.execute "updata tablename set xx1=11 where xx2=22"
报告出错:“需要使用一个可更新的查询”,使用select 语句就正常。
以前用同样的语言一直很好。而且相同的语句,在visual basic 6.0环境下使用运行就可以,现在我没办法,操作数据库就使用vb编程了,苦恼中。
9 楼
qiudaowei [专家分:20] 发布于 2007-08-05 21:39:00
可能是权限问题
10 楼
notbird [专家分:2800] 发布于 2007-08-06 11:08:00
请你给予intenet 来宾帐户( IUSR_XXX )对db.mdb数据库文件及所在目录写入和删除的权限或者是修改的权限
我来回复