这个变量如何声明?

casear_huang 2002-02-02 11:19:46
下面这段代码,如果写一句Dim rs1就会有这个错误
Microsoft VBScript 运行时错误 错误 '800a01a8'
缺少对象

/rsgl/emp_prj_assign_left.asp, 行56
行56就是rs1.MoveNext

那么这个rs1该如何声明呢?
<%
Dim rs
Function tree(sup_dept,leves)
sp=""
leves = leves + 1
SQL = "Select dept_id,dept_name From cd_dept Where sup_dept='"&sup_dept&"' Order By dept_id "
Set rs1=conn.Execute(SQL)
Do While Not rs1.EOF
For i = 2 To leves
sp = sp&"    "
Next
Response.Write "<tr><td>"
Response.Write sp&"<a href=""javascript:;"" onclick=""add_prj_name('"&rs1("dept_name")&"','"&rs1("dept_id")&"')"">"&rs1("dept_name")&"</a></td></tr>"
sp=""
call tree(rs1("dept_id"),leves)
leves = leves - 1
rs1.MoveNext
Loop
rs1.Close
Set rs1 = Nothing
End Function

SQL = "Select dept_id,dept_name From cd_dept Where sup_dept Like 'b%' Order By dept_id Desc"
Set rs = conn.Execute(SQL)
Do While Not rs.EOF
Response.Write "<table border=""0""><tr><td><a href=""javascript:;"" onclick=""add_prj_name('"&rs("dept_name")&"','"&rs("dept_id")&"')"">"
Response.write rs("dept_name")&"</a></td></tr>"
call tree(rs("dept_id"),1)
Response.Write "</table>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihaitaoami 2002-02-05
  • 打赏
  • 举报
回复
有可能是rs1重定义了,就是你在其它过程里已经定义过了。
去掉dim语句就不会报这样的错误,但是毕竟不太安全。变量最好清楚一些,不然自己都会搞混的。
casear_huang 2002-02-05
  • 打赏
  • 举报
回复
如果,不加任何声明,程序没有错。
而声明变量,只要不声明rs1也没有错,
但是只要一声明rs1就出错。
声明rs不会出错。
lihaitaoami 2002-02-02
  • 打赏
  • 举报
回复
语句是没有问题的,极有可能是你在循环里调用的另外一个子函数里也有一个同样的变量,看一看是不是这样。
两个变量如果都是同一个名字,肯定会出错。
你试一试把循环里的其它操作全注释掉,只保留rs1.movenext,看还报不报错。
lwwwp 2002-02-02
  • 打赏
  • 举报
回复
打开记录集时,要求指针类型为1或3.
joyu 2002-02-02
  • 打赏
  • 举报
回复
你是在什么地方声明的?还有如果不加此声明是不是就没有错?
defore 2002-02-02
  • 打赏
  • 举报
回复
你在前面加上这句试试看

set rs1=server.createobject("adodb.recordset")

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧