网管程序员论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1122|回复: 0

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的...

[复制链接]
发表于 2013-2-13 13:19:07 | 显示全部楼层 |阅读模式
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

今天晚上做了一个留言本,竟然出来不少问题,这些问题以前都没有出现过,我把它记录下来,为以后的学习和工作积累财富。

部分源代码如下:

<%
set conn=server.CreateObject("adodb.connection")
conn.connectionstring="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("chatdata.mdb")
conn.open
set rs=server.CreateObject("adodb.recordset")
str="select * from userinfo"
rs.open str,conn,3,3
if not rs.eof and not rs.bof then
rs.movelast
end if
while not rs.bof
%>
主题:<%=rs(1)%><br>
姓名:<%=rs(2)%><br />
内容:<%=rs(3)%><br>
时间:<%=rs(4)%><br />
<hr />
<%
rs.moveprevious
wend
%>

把红色字体部分注释掉,就会出现题目中所说的错误,原因主要是:可能一开始的时候数据库中没有数据,也就是说数据库是空的。当数据库中有记录时,没有判断rs的位置是否处于eof或者bof也会出现问题。正确的做法应该是先判断一下当前记录集的位置,然后再进行其他的操作。因为打开指针时默认是在最上面,因此只用下面的语句判断即可,即:

    if not rs.eof then

    ……

   end if
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|最新更新|网管程序员社区 鄂ICP备11008024号-3

GMT+8, 2019-11-21 20:25 , Processed in 0.124800 second(s), 20 queries .

Powered by 网管论坛

© 2001-2018 www.027safe.com Inc.

快速回复 返回顶部 返回列表