今天解决了一个半年前遗留下来的很低级的asp代码bug

来源:互联网 发布:bilibili好玩的知乎 编辑:程序博客网 时间:2024/05/03 07:43

由于本人一直是搞java,不懂什么VB语法,使得这个问题在当时(半年前)搞了一天都无法解决,后来由于时间的匆忙就不再理会,今天偶然想起,终于把它解决了。

这个问题是在维护一个很小很小的ASP网站是遇到的,其实是很经典的aspbug问题,就是:在添加新闻时,没有给新闻添加首页的标题图片时,或者清空所有新闻时,报出异常 

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 等即可。

其实,仔细看看这些代码,这种代码很低级,写代码的水平也很初级,根本是乱七八糟。

 

原创粉丝点击