由于本人一直是搞java,不懂什么VB语法,使得这个问题在当时(半年前)搞了一天都无法解决,后来由于时间的匆忙就不再理会,今天偶然想起,终于把它解决了。
这个问题是在维护一个很小很小的ASP网站是遇到的,其实是很经典的asp的bug问题,就是:在添加新闻时,没有给新闻添加首页的标题图片时,或者清空所有新闻时,报出异常
“ADODB.Field 错误 '800a0bcd'
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。”
这种问题网上的解决方法也很多,无非就是没有对rs.bof and rs.eof判断,按照网上的方法加了相应的判断,进行相应的异常处理,但是缺加了判断之后,仍然在没有给新闻添加首页的标题图片时报出上面的异常。
原嵌在网页中的VB问题代码:
<%
smallpic=""
sql="select * from jiuye order by news_id DESC"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
rs.MoveLast
rscount=rs.RecordCount
rs.MoveFirst
%>
<!---smallpic字段是指标题图片 -->
<%
while smallpic=""
smallpic=rs("smallpic")
smallpictitle=rs("news_title")
smallpic_id=rs("news_id")
rs.movenext
wend
%>
报错仍然是在 rs.open sql,conn,1,1这一行。其实根本原因是在while smallpic=""在这个判断,这个判断是多次一举,使得没有图片时继续报错。把while smallpic=""和 wend删除,在原代码添加相应的异常处理if rs.bof and rs.eof then……else……end if 等即可。
其实,仔细看看这些代码,这种代码很低级,写代码的水平也很初级,根本是乱七八糟。