设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 108|回复: 8
打印 上一主题 下一主题

SUB 调用疑问

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-10 06:33:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教个问题
在 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
%>
2#
发表于 2010-1-10 06:33:17 | 只看该作者
还是说SUB() 不支持 这样使用
回复 支持 反对

使用道具 举报

3#
发表于 2010-1-10 06:33:21 | 只看该作者
确认一下这个rs指的是同一个rs……
回复 支持 反对

使用道具 举报

4#
发表于 2010-1-10 06:33:38 | 只看该作者
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
回复 支持 反对

使用道具 举报

5#
发表于 2010-1-10 06:33:42 | 只看该作者
过程中创建的对象,只能在过程中使用,当调用过程完毕后,对象就失效了

就像是过程级变量与脚本级变量的生命周期是不一样的
回复 支持 反对

使用道具 举报

6#
发表于 2010-1-10 06:33:46 | 只看该作者
问题不在这里。

难道说你没有定义变量?
难道rs在Set之前没有定义?
回复 支持 反对

使用道具 举报

7#
发表于 2010-1-10 06:33:50 | 只看该作者
终于纠正了,原来是 局部和全局变量的问题
只要把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
回复 支持 反对

使用道具 举报

8#
发表于 2010-1-10 06:33:54 | 只看该作者
那我只能说……这个很诡异……
回复 支持 反对

使用道具 举报

9#
发表于 2010-1-10 06:33:58 | 只看该作者
是的,同一个RS
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 16:47 , Processed in 0.105002 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表