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

本文讲述了作者在半年后解决了一个低级ASP代码错误的问题,该错误在尝试添加或清除新闻时出现。通过分析,发现问题是由于在没有新闻时仍尝试访问记录导致的。修复方法是删除不必要的while循环,并添加对BOF和EOF的异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于本人一直是搞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 等即可。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值