那位玩弄过ASP的富翁帮我看看这是咋回事的?(30分)

  • 主题发起人 lxzmm_zy
  • 开始时间
L

lxzmm_zy

Unregistered / Unconfirmed
GUEST, unregistred user!
我的ASP 中在Session_OnEnd中有如下代码,但执行后前面数据库的操作未有执行,但后面在线人数减一却被执行,请问高手是为啥?
'数据库操作
Set Conn=Server.CreateObject("ADODB.connection")
'Response.Write "driver={Microsoft Access Driver (*.mdb)};dbq= " &
Server.MapPath("../test/loginwebdate/loginrecord.asp")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq= " &
Server.MapPath("../test/loginwebdate/loginrecord.mdb")
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "loginrecord",conn,3,3
rs.addnew
rs("name")=cstr(Session.SessionID )&"退出"
rs("logindate")=now
rs.update
conn.close
'在线人数减一
if session("name")<>"" then

old_str=application("on_use")
find_str="$"&amp;ssession("name")&amp;"$"
application("on_use")=replace(old_str,find_str,"$" )
application("onend")="Session_OnEnd Event Run Secsessful !"
end if
Application.Lock
Application("online")=Application("online")-1
Application.unlock
 
Application("online")=Application("online")-1
Application("online")只是字符串
 
这部分是成功执行了的,没有结果的是前一部分代码的执行并未产生结果,但又没有报告错误!
'在线人数减一
if session("name")<>"" then

old_str=application("on_use")
find_str="$"&amp;ssession("name")&amp;"$"
application("on_use")=replace(old_str,find_str,"$" )
application("onend")="Session_OnEnd Event Run Secsessful !"
end if
Application.Lock
Application("online")=Application("online")-1
Application.unlock
 
rs.Open "loginrecord",conn,3,3
改成参数用2,2再试
你现在用的是只读打开,当然数据库不能增加记录
 
同意楼上
rs.Open "loginrecord",conn,1,3
 
[:)][?]rs.Open "loginrecord",conn,3,3 正确的,我其他地方这样用,都达到我要得效果,故此处参数应该没错误!
 
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "loginrecord",conn,3,3
rs.addnew
rs("name")=cstr(Session.SessionID )&amp;"退出"
rs("logindate")=now
rs.update
conn.close
以上改为以下试一试?
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "loginrecord",Conn,,,adCmdTable
rs.addnew
rs("name")=cstr(Session.SessionID )&amp;"退出"
rs("logindate")=now
rs.update
Set rs = Nothing
conn.close
 
顶部