| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:新人关于SUB过程的问题
取消只看楼主 加入收藏
ordosit
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-10-21
收藏
 问题点数:0 回复次数:0 
新人关于SUB过程的问题
有个关于ASP的问题!请大家帮忙!
'问题如下:
'我自己写了一个Sub过程,作用于通过参数的不同而调用不同的新闻列表,Sub实现以下功能!
'1.可调用单个或多个频道ID即ChannelID="1|3|4"
'2.可调用单个或多个栏目ID即ClassID="1|3|4"
'3.需要自动过滤掉后台已经关闭或禁用的频道ID和栏目ID
'4.需要实现分页功能
'情况如下:
'功能我都已实现只是在过滤ChannelID和ClassID时存在写法上的问题
'比如调用过程:Call ShowNewsList("100|300|400","101|102|103|301|303")
'我的做法如下,在进入Sub 则进行ChannelID的过滤及ClassID的过滤
Sub ShowNewsList(ChannelID,ClassID)
IF ChannelID <> "" Then ChannelID = CheckChannelID(ChannelID)
IF ClassID <> "" Then ClassID = CheckClassID(ClassID)
'过滤出的参数如下
'所有分类均关闭时返回-2,如果传入数据非数字或数组时返回参数-1,如果过滤成功则返回如ChannelID="300,400"
REM:进行返回参数判断,这里就不写了
'将两个参数都过滤后则写入数据库判断语名
Dim rs,sql
Sql = "Select * From News Where IsShow=True"
'ISshow为新闻是否显示开关
'频道叛定
IF instr(ChannelID,",") > 0 Then
'如果为数组时
SQL = SQL & " And ChannelID In("&ChannelID&")"
Else'非数组时
SQL = SQL & " And ChannelID = "&ChannelID&""
End IF
'分类叛定
IF instr(ClassID,",") > 0 Then
'如果为数组时
SQL = SQL & " And ClassIDIn("&ChanClassIDnelID&")"
Else'非数组时
SQL = SQL & " And ClassID= "&ClassID&""
End IF
SQL = SQL & " Order by OrderID,UpdateTimes"
REM:以下省略
End Sub
'通过单独调用显示来看
'总数据27条数据
'A:调用ChannelID="100,200,300"及ClassID="101,201,301"
Call ShowNewsList("100|200|300","101|201|301")'30多毫秒 显示数据 9条
'B:调用ChannelID="100,200,300" ClassID不限
Call SHowNewsList("100|200|300","101|201|301")'46.875毫秒 显示数据 17条
'B:调用ChannelID不限 ClassID不限 注:这里好像不太对
'因为我需要此SUB还可以实现分页功能,所以在DO以前进行分页处理的,但是呢,如果ChannelID=0 and ClassID=0他就会把已关闭频道的数据也显示出来
'我的处理办法是把循环出所以正常运行的频道即当ChannelID = 0则最覆盖过滤出来的可能是ChannelID = "100|300|500|800……",而ClassID也一样
Call SHowNewsList(0,0)'62.500毫秒 显示数据 27条
'现在我想问的的
'我知道我的写法上肯定有问题,但是有什么更好的办法吗?
搜索更多相关主题的帖子: SUB 新人 
2008-09-26 12:54
快速回复:新人关于SUB过程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015630 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved