+ -
当前位置:首页 → 问答吧 → 想不通的错误问题,请教

想不通的错误问题,请教

时间:2011-07-31

来源:互联网

最近在需改网人分类信息,写一个调用函数,代码如下:
第一段
VB code

  Function quyu(id)
    Call DBConnBegin()
    Set rs = Conn.Execute("Select WM_AreaID,WM_AreaB,WM_AreaS From WM_ClassAD Where WM_ID="&id&"")
        aaa=rs(0)
        bbb=rs(1)
        ccc=rs(2)
    rs.close
  End Function


出错,也没提示出错信息,但是如果将bbb和ccc这两行注释掉就正常,将aaa=rs(0)改成aaa=rs(1)或者aaa=rs(2)都正常,就是不能三行同时写出来。

另一段代码:

VB code

  Function quyu(id)
    Call DBConnBegin()
    Set rs = Conn.Execute("Select WM_AreaID,WM_AreaB,WM_AreaS From WM_ClassAD Where WM_ID="&id&"")
        Set rss=Conn.Execute("Select WM_ChildArea From WM_Area Where WM_ID="&rs(0)&"")
         'AAA=rss(0)
         response.Write rss(0)
        rss.close
    rs.close
  End Function



注释掉AAA=rss(0)下面直接输出正常,但是如果将这行去掉注释,下面改成response.Write AAA 则出错,太不能理解了

关键是这个程序也不提示错误,想不明白到底哪里错了

作者: phuai007   发布时间: 2011-07-31

加个on error

Function quyu(id)
  on error resume next
  Call DBConnBegin()
  Set rs = Conn.Execute("Select WM_AreaID,WM_AreaB,WM_AreaS From WM_ClassAD Where WM_ID="&id&"")
  aaa=rs(0)
  bbb=rs(1)
  ccc=rs(2)
  if error.number <> 0 then
  response.write err.description
  response.end
  end if
  rs.close
  End Function

作者: dogfish   发布时间: 2011-07-31

找到问题了,是变量没有定义,全部dim后就不出问题了

作者: phuai007   发布时间: 2011-07-31

你应该开了显式声明选项吧,
Option Explicit Off
开启来是个好习惯

作者: dongxinxi   发布时间: 2011-07-31