主题:  为何Global.asa会失效?

李小龙

职务:普通成员
等级:1
金币:0.0
发贴:9
#12004/9/14 20:47:36
这是一个在线人数统计,数据库ACCESS,大家帮我看看为何失效。打开 show.asp之后
数据库中ID1的online字段应该已打上勾,页面上显示为true,但是没发生。。。。

一个显示文件,一个Global.asa,当然都放在同一文件夹
数据库db1.mdb,表名list1,字段:name文本类型,pass文本类型,online是否类型
注:事先已经数据库手工输入两条记录,分别是ID1,ID2

用户进入触发session_onstart事件,将数据库online设为true,即已登录,
用户离开触发session_onend事件,将数据库online设为false,已未登录。

show.asp=============================================

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("db1.mdb")
set rs=server.createobject("adodb.recordset")
cmd="select * from list1"
rs.open cmd,conn,1,1
%>


<% do while not rs.eof %>
在线者:name=<%=rs("name")%>,pass=<%=rs("pass")%>,online=<%=rs("online")%><br>
<% rs.movenext %>
<% loop %>


Global.asa======================================================
<script language=vbscript runat="server">
sub application_onstart
set application("conn")=server.createobject("adodb.connection")
application("conn").open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("db1.mdb")
end sub

sub session_onstart
session("islogin")=false
application.lock
application("conn").execute ("update list1 set online=true where id=1")
application.unlock
end sub


sub session_onend
application.lock
application("conn").execute ("update list1 set online=false where id=1")
application("conn").close
application.unlock
end sub

sub application_onend
end sub
</script>

编辑历史:[此帖最近一次被 allinhands 编辑过(编辑时间:2004-09-14 21:36:12)]


vbyzc

职务:普通成员
等级:1
金币:0.0
发贴:34
#22004/9/14 20:57:22
晕噢,为什么都自动变成笑脸了。。



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#32004/9/15 0:37:15
Global.asa应放在站点的根目录下。


非常大鱼

vbyzc

职务:普通成员
等级:1
金币:0.0
发贴:34
#42004/9/15 9:25:28
兄台先确定我代码没错?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#52004/9/15 16:49:49
代码要调试后再得知,globa.asa文件不放在根目录下是不会运行的。


非常大鱼

janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#62004/9/16 10:02:44
这样的代码没有必要调试,应该放弃这个思路。不要把数据库连接保持在应用程序运行期间,这往往会造成长时间的锁定,同时也是不必要的浪费。

btw:global.asa应该放在应用程序根目录下。通常站点根目录就存在一个应用程序(你可以在IIS管理器中把它删除)。一个站点也允许同时存在多个应用程序,这使得workstation用户可以在一个站点中调试几个系统(应用程序)