设为首页收藏本站

新微赢技术网

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

新人关于SUB过程的问题

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-10 22:37:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个关于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条
'现在我想问的的
'我知道我的写法上肯定有问题,但是有什么更好的办法吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by xuexi

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

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