|
蓝森林 http://www.lslnet.com 2006年8月25日 8:28
[ASP]更新数据库时,SQL覆盖的顺序这样会出错?
我这样更新,会出问题;有的服务器上正常,而有的服务器不能正常执行。
我想知道这样更新,是不是顺着代码的顺序执行?
我发现:
yesdayip覆盖了rs1("day2ip")
yesdaypv覆盖了rs1("day2pv")
rs1("day2pv")覆盖了rs1("yesdaypv")
为什么呢??
[code]
<%
'更新
sql1="select * from cnt where id =1"
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn,1,3
rs1("day2ip")=rs1("yesdayip")
rs1("day2pv")=rs1("yesdaypv")
rs1("yesdayip")=yesdayip '已赋值
rs1("yesdaypv")=yesdaypv '已赋值
rs1("totalpv")=rs1("totalpv")+yesdaypv
rs1("totalip")=rs1("totalip")+yesdayip
rs1.update
rs1.close
set rs1=nothing
%>
[/code] |
有的服务器上正常,而有的服务器不能正常执行。
这样的情况很纳闷啊。
你的代码好像没问题啊。 |
不过我想这样写,应该不会有问题了吧
[code]
<%
'取值
sql1="select yesdayip,yesdaypv from cnt where id =1"
set rs1=conn.execute(sql1)
day2ip=rs1(0)
day2pv=rs1(1)
set rs1=nothing
yesdayip=yesdayip() '函数取值
yesdaypv=yesdaypv() '函数取值
'更新
sql="update cnt set day2ip="&day2ip&",day2pv="&day2pv&",yesdayip="&yesdayip&",yesdaypv="&yesdaypv&",totalip=totalip+"&yesdayip&",totalpv=totalpv+"&yesdaypv&" where id = 1"
conn.execute(sql)
%>
[/code] |
实践是检验真理的唯一标准哈。 |
|