我按着书上的原理自己写了一个计数器,但在运行后会提示错误:
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
//global.asa, 第 9 行
我找不出原因,而且我发现我放在onend函数中的程序好象都没有执行
我的代码如下:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Application("onling")=0
Application("sconn") = "driver={microsoft access driver (*.mdb)};dbq="&server.mapPath("data\db.mdb")&";pwd=dxdong"
set Application("oconn") = Server.CreateObject("adodb.connection")
Application("oconn").open application("sconn")
set rs=server.createobject("adodb.recordset")
rs.open "select [count] from [count] where [id] = 1",application("sconn")
application("count")=rs("count")
rs.close
End Sub
=========================================================
SUB Application_OnEnd
rs.open "select count from count where id=1",application("oconn"),1,2
rs.fields("count")=application("count")
rs.updata
rs.close
set rs=nothing
End Sub
=========================================================
Sub Session_OnStart
Session("mode")="user"
application("count")=application("count")+1
End Sub
=========================================================
Sub Session_OnEnd
application("onling")=application("onling")+1
application("onling")=application("onling")-1
End Sub
</SCRIPT>
请高手指出原因,万分感谢!!!
一小时后来结分~~~~
可能问题在数据库,你保存的计数器没有初始化。可能你建了表,但是表里面没有记录,所以至少要建一条记录来存储计数。
帮你顶贴。。关注。。
你写代码的时候记得判断是不是确实有记录。然后做错误错误,我想这也是一个好的习惯。
比如下面的代码。
rs.open "select [count] from [count] where [id] = 1",application("sconn")
application("count")=rs("count")
也许就没有读到记录的。
检查数据库是否确实存在记录。
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Application("onling")=0
Application("sconn") = "driver={microsoft access driver (*.mdb)};dbq="&server.mapPath("data\db.mdb")&";pwd=dxdong"
set Application("oconn") = Server.CreateObject("adodb.connection")
Application("oconn").open application("sconn")
set rs=server.createobject("adodb.recordset")
rs.open "select [count] from [count] where [id] = 1",application("sconn")
if not(rs.eof or rs.bof) then
application("count")=rs("count")
end if
rs.close
End Sub
=========================================================
SUB Application_OnEnd
rs.open "select count from count where id=1",application("oconn"),1,2
if not(rs.eof or rs.bof) then
rs.fields("count")=application("count")
end if
rs.updata
rs.close
set rs=nothing
End Sub
=========================================================
Sub Session_OnStart
Session("mode")="user"
application("count")=application("count")+1
End Sub
=========================================================
Sub Session_OnEnd
application("onling")=application("onling")+1
application("onling")=application("onling")-1
End Sub
</SCRIPT>