菜鸟求助,关于计数器的问题

dxdong 2005-06-01 05:26:50
我按着书上的原理自己写了一个计数器,但在运行后会提示错误:
错误类型:
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>
请高手指出原因,万分感谢!!!
一小时后来结分~~~~
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwsh 2005-06-01
  • 打赏
  • 举报
回复
<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>
dxdong 2005-06-01
  • 打赏
  • 举报
回复
有记录啊,我特地把第一条记录加上的,ID=1,count=1
而且我也说了,第一次打开有错误提示,以后就没有了

不过刚才我又试了下,没有错误提示了,很奇怪,但是还有问题就是他不保存到数据库中,也就是说,两个onend函数中的程序没有执行,这是为什么啊,我的代码存在缺陷吗???????
cxy89173 2005-06-01
  • 打赏
  • 举报
回复
你写代码的时候记得判断是不是确实有记录。然后做错误错误,我想这也是一个好的习惯。
比如下面的代码。
rs.open "select [count] from [count] where [id] = 1",application("sconn")
application("count")=rs("count")
也许就没有读到记录的。
检查数据库是否确实存在记录。
mfkiqpl 2005-06-01
  • 打赏
  • 举报
回复
帮你顶贴。。关注。。
jxsrleoyan 2005-06-01
  • 打赏
  • 举报
回复
可能问题在数据库,你保存的计数器没有初始化。可能你建了表,但是表里面没有记录,所以至少要建一条记录来存储计数。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧