请帮忙看看这个asp代码为什么报错"UPDATE 语句的语法错误。"
<%'初始值赋为0fori=1to8sql="updatetjjgsetb"&i&"=0,k"&i&"=0"conn.execute(sql)next'12个被评部门fo...
<%
'初始值赋为0
for i=1 to 8
sql="update tjjg set b" & i & "=0,k" & i & "=0"
conn.execute(sql)
next
'12个被评部门
for i=1 to 12
'每个部门计算8个指标分
set rs1=server.createobject("adodb.recordset")
set rs2=server.createobject("adodb.recordset")
for z=1 to 8
rs1.Open "SELECT avg(fen) as vvb" & z & " FROM vote WHERE dep_id=" & i & " and role='b' and zb=" & z & "",conn,1,1
rs2.Open "SELECT avg(fen) as vvk" & z & " FROM vote WHERE dep_id=" & i & " and role='k' and zb=" & z & "",conn,1,1
vvb=(rs1(0))
vvk=(rs2(0))
vvp=vvb*0.5+vvk*0.5
'response.write vvb
'response.write "//"
'response.write vvk
'response.write "//"
'response.write vvp
'response.write "//"
sql_upd="update tjjg set b" & z & "=" & vvb & ",k" & z & "=" & vvk &",p" & z & "=" & vvp & " where dep_id=" & i
'response.write sql_upd
'response.write "//"
'response.end
conn.execute(sql_upd)
rs1.Close
rs2.Close
next
Set rs1=nothing
Set rs2=nothing
next
%>
运行时保错"UPDATE 语句的语法错误",保错行是"conn.execute sql_upd) ", 第五行的"conn.execute(sql)"倒是执行正常.
把vvb vvk vvp 和 sql_upd打印到页面上没发现错误,
sql_upd放到access数据库执行也是正常.字段都是数字类型的,不知道到底什么原因update失败
如果把response的注释去掉,我打印到页面上的结果是
1.5//5//3.25//update tjjg set b1=1.5,k1=5,p1=3.25 where dep_id=1//
把那个sql语句直接放到access里执行是成功的.
谢谢kefanmail 的回答,按你说的加了,运行出来的结果是
"UPDATE 语句的语法错误。
update tjjg set b1=1,k1=,p1= where dep_id=2"
还是想不同这个sql有什么错,我用的字段也不是关键字啊 展开
'初始值赋为0
for i=1 to 8
sql="update tjjg set b" & i & "=0,k" & i & "=0"
conn.execute(sql)
next
'12个被评部门
for i=1 to 12
'每个部门计算8个指标分
set rs1=server.createobject("adodb.recordset")
set rs2=server.createobject("adodb.recordset")
for z=1 to 8
rs1.Open "SELECT avg(fen) as vvb" & z & " FROM vote WHERE dep_id=" & i & " and role='b' and zb=" & z & "",conn,1,1
rs2.Open "SELECT avg(fen) as vvk" & z & " FROM vote WHERE dep_id=" & i & " and role='k' and zb=" & z & "",conn,1,1
vvb=(rs1(0))
vvk=(rs2(0))
vvp=vvb*0.5+vvk*0.5
'response.write vvb
'response.write "//"
'response.write vvk
'response.write "//"
'response.write vvp
'response.write "//"
sql_upd="update tjjg set b" & z & "=" & vvb & ",k" & z & "=" & vvk &",p" & z & "=" & vvp & " where dep_id=" & i
'response.write sql_upd
'response.write "//"
'response.end
conn.execute(sql_upd)
rs1.Close
rs2.Close
next
Set rs1=nothing
Set rs2=nothing
next
%>
运行时保错"UPDATE 语句的语法错误",保错行是"conn.execute sql_upd) ", 第五行的"conn.execute(sql)"倒是执行正常.
把vvb vvk vvp 和 sql_upd打印到页面上没发现错误,
sql_upd放到access数据库执行也是正常.字段都是数字类型的,不知道到底什么原因update失败
如果把response的注释去掉,我打印到页面上的结果是
1.5//5//3.25//update tjjg set b1=1.5,k1=5,p1=3.25 where dep_id=1//
把那个sql语句直接放到access里执行是成功的.
谢谢kefanmail 的回答,按你说的加了,运行出来的结果是
"UPDATE 语句的语法错误。
update tjjg set b1=1,k1=,p1= where dep_id=2"
还是想不同这个sql有什么错,我用的字段也不是关键字啊 展开
2个回答
展开全部
第一行加上一个:
On Error Resume Next
conn.execute(sql_upd)
下面加上:
If Err.number<>0 then
Response.write(Err.Description)
Response.write("<br />" & sql_upd)
Response.end
End If
然后运行程序,看详细错误提示信息,应该能找出问题所在。呵。。
--------------------------------------------------------------
update tjjg set b1=1,k1=,p1= where dep_id=2"
这个UPDATE 的 K1,P1都没值呀,当然出错了。呵。。
On Error Resume Next
conn.execute(sql_upd)
下面加上:
If Err.number<>0 then
Response.write(Err.Description)
Response.write("<br />" & sql_upd)
Response.end
End If
然后运行程序,看详细错误提示信息,应该能找出问题所在。呵。。
--------------------------------------------------------------
update tjjg set b1=1,k1=,p1= where dep_id=2"
这个UPDATE 的 K1,P1都没值呀,当然出错了。呵。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询