Microsoft VBScript 运行时错误 错误 '800a01fb'

来源:百度知道 编辑:UC知道 时间:2024/04/28 20:05:56
出现如下错误,等会在刷新就好像死循环了 IIS要重启才能打开

Microsoft VBScript 运行时错误 错误 '800a01fb'

出现一个意外错误: 'rs2.open'

/web/class.asp,行 25

以下是完整代码:
<!--#include file="conn.asp"-->

<%
set rs1=server.createobject("adodb.recordset")
sql="select * from classdata where fatherid=0 order by classid"
rs1.open sql,aa,1,1
if rs1.eof and rs1.bof then
response.write "还没有分类"
else
while not rs1.eof
classid=rs1("classid")
classname=rs1("classname")
fatherid=rs1("fatherid")
response.write "<a href='class.asp?

classid="&classid&"&classname="&classname&"'>"&classname&"</a><br>"
call reclass(classid)
rs1.movenext
wend
end if
rs1.close
set rs1=nothing

sub reclass(classid)
set rs2=server.createobject(&

常见毛病
并且很严重:
while not rs1.eof
classid=rs1("classid")
classname=rs1("classname")
fatherid=rs1("fatherid")
注意: 你取的fatherid是一个循环,那么
sql="select * from classdata where fatherid="&fatherid 就只能取classid排序的第一个值
你想过如果fatherid是空的(isempty)怎么办?
所以开头你应该定义
<%
fatherid=0
set rs1=server.createobject("adodb.recordset")
...
%>

将sub reclass(classid)
set rs2=server.createobject("adodb.recordset")
sql="select * from classdata where fatherid="&fatherid
rs2.open sql,aa,1,1
中的rs2.open sql,aa,1,1
改为
rs2.open sql,aa,1,3

sub reclass(classid)
set rs2=server.createobject("adodb.recordset")
sql="select * from classdata where fatherid="&fatherid
rs2.open sql,aa,1,1
i=1
.....
这个函数定义中的fatherid这个值是空的,函数只传递过来一个参数就是classid
所以,你的sql语句有错,因为fatherid根本没有值,请把sql语句