主题:  在设置有自动编号表中的数据更新问题

010224

职务:普通成员
等级:1
金币:0.0
发贴:54
#12004/3/18 19:49:55
我在一张表上设置了三列,分别为id、name、address,其中id设的自动编号
然后执行下面的语句:
sql="insert into table(name,address) values('" & request.Form("name") & "','" & request.Form("address")"' )"
set rs=conn.execute(sql)

浏览器会提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。

出现这种情况是什么原因?
怎么样才能解决?
:confused:



010224

职务:普通成员
等级:1
金币:0.0
发贴:54
#22004/3/19 21:39:21
不是的,呵呵
上面的是我在写下此问题时的笔误,因为实际中我是按照lemontree提供的语句来写的。
我把具体的代码写出来,看看到底是什么问题:
dim sql,sql1
sql="select name from table where name ='" & request.Form("name" ) & "'"
sql1="insert into table(name,address) values('" & request.Form("name" ) & "','" & request.Form("address" )&"' )"
if request.Form("action" )="确定" then
set rs=conn.execute(sql)
if not rs.eof then
response.write"<script>alert('此人已经存在于数据库中!');history.back();</script>"
response.end
else
conn.execute(sql1)
response.write"<script>alert('成功更新!');history.back();</script>"
response.end
end if
end if


然后一执行,就提示说
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误

具体出现错误的行在: conn.execute(sql1)
什么原因?



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#32004/3/20 12:44:06
insert into [table]...

应该避免用 t-sql 关键字给对象命名!



010224

职务:普通成员
等级:1
金币:0.0
发贴:54
#42004/3/20 20:43:35
我把表名换一下还是报告这样的错误
但是我把自动编号的那一列去掉之后就可以正常插入了
为什么一加上自动编号就不行了呢?
真的没有解决的办法了么~



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#52004/3/27 17:26:22
标识列禁止更新,如果需要更新这个列,在设计时不要让它自动更新