新微赢技术网

标题: SUB 调用疑问 [打印本页]

作者: Bu怕Bu怕    时间: 2010-1-10 06:33
标题: SUB 调用疑问
请教个问题
在 sub_config.asp 页面有 以下一个查询程序段如下
Sub Table_Select(str_table,str_select,str_where,str_by)
sql="select "&str_select&" from "&str_table&"  "&str_where&"  "&str_by&" "
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
(如果把输出数据写在 sub...end sub 之间是可以显示数据的)
end Sub

在seting.asp 中调用时 却不能显示数据,调用数据如下,是怎么一回事?

<% call Table_Select("websetting","webtitle,webkey,webinfo","","")  
response.write rs(0)  &"\"&rs(1) &"\"& rs(2)
rs.close
set rs=nothing
%>
作者: ☆蘫弧ゞ无悔    时间: 2010-1-10 06:33
还是说SUB() 不支持 这样使用
作者: [日青](忝)    时间: 2010-1-10 06:33
确认一下这个rs指的是同一个rs……
作者: 可爱的人    时间: 2010-1-10 06:33
dim rs

Sub Table_Select(str_table,str_select,str_where,str_by)
sql="select "&str_select&" from "&str_table&"  "&str_where&"  "&str_by&" "
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
(如果把输出数据写在 sub...end sub 之间是可以显示数据的)
end Sub
作者: 追风少年    时间: 2010-1-10 06:33
过程中创建的对象,只能在过程中使用,当调用过程完毕后,对象就失效了

就像是过程级变量与脚本级变量的生命周期是不一样的
作者: 怀灭    时间: 2010-1-10 06:33
问题不在这里。

难道说你没有定义变量?
难道rs在Set之前没有定义?
作者: 【洳☆淉】    时间: 2010-1-10 06:33
终于纠正了,原来是 局部和全局变量的问题
只要把set rs=server.createobject("adodb.recordset") 放到Sub Table_Select 外面就可以了。
这样自就可以简约代码了。请高手别笑话.......

set rs=server.createobject("adodb.recordset")
Sub Table_Select(str_table,str_select,str_where,str_by)
sql="select "&str_select&" from "&str_table&"  "&str_where&"  "&str_by&" "
rs.open sql,conn,1,1
end Sub
作者: 十六夜的月    时间: 2010-1-10 06:33
那我只能说……这个很诡异……
作者: 天使替我爱你    时间: 2010-1-10 06:33
是的,同一个RS




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2