当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在记录集中加入判断使之灵活

ASP
用ASP做一个分页程序
用ASP实现网站的“目录树”管理
网页在线人数统计的做法
用ASP生成Chart
用ASP构建你的网站新闻发布(一)
用ASP构建你的网站新闻发布(三)
如何处理ASP中的图象
用ASP编写计数器
ASP防盗链及防下载的方法
ASP数据类型
ASP组件中的安全问题
ASP漏洞集-ASP漏洞分析和解决方法
ASP漏洞集-Carello Web 使 ASP 源码暴露(APP,缺陷)
ASP漏洞集-MS IIS server的ASP安全缺陷(MS,缺陷)
ASP漏洞集-MS IIS虚拟主机ASP源码泄露(MS,缺陷)
ASP漏洞集-给你的FileSystemObject对象加把锁
ASP漏洞集-通过asp入侵web server,窃取文件毁坏系统
ASP漏洞集-MS IIS server/Frontpage Ext Server
ASP漏洞集-虚拟web目录容易泄露ASP源代码 (MS,缺陷)
ASP漏洞集-用ASP实现网页保密的两种方法

ASP 中的 在记录集中加入判断使之灵活


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 30 ::
收藏到网摘: n/a

       在应用中,有时候会要求按照日期来排列数据,并且还会需要简单的按日期来检索数据,比如在页面上加入一个跳转菜单,包含数据的日期列表,然后选择日期后传递日期参数跳转。这种做法在没有日期的时候应该显示哪一天的数据呢?
通常会用“DATE()”作为没有参数情况下的选择,就是显示当天的数据,但如果当天没有数据呢?
“DATE()-1”?似乎不能解决问题。
先看看Dreamweaver MX 自动生成记录集的SQL代码:

SCSJ.Source = "SELECT * FROM dbo.MCIS_生产数据 WHERE 日期 = '" + Replace(SCSJ__MMColParam, "'", "''") + "' ORDER BY 日期 DESC"

在日期字段的过滤上使用了“=”,大家都知道如果是文本类型的话可以使用“LIKE”操作符配合“%”来获得所有记录,如果可以做到,那么在没有日期参数传递的情况下就显示所有的记录倒是不错的选择。
这里的实现方法就是修改Dreamweaver MX 自动生成的记录集代码,加入判断,当URL参数不存在的时候,记录集SQL过滤使用“LIKE”操作符获得所有记录,否则使用“=”操作符获得属于参数日期的记录。

下面是代码,应该很好理解的。
<%
Dim SCSJ__MMColParam
SCSJ__MMColParam = "%"
If (Request.QueryString("MCISDATE") <> "") Then
SCSJ__MMColParam = Request.QueryString("MCISDATE")
End If
%>
<%
Dim SCSJ
Dim SCSJ_numRows

Set SCSJ = Server.CreateObject("ADODB.Recordset")
SCSJ.ActiveConnection = MM_jbcjsql_STRING
If (Request.QueryString("MCISDATE") <> "") Then
SCSJ.Source = "SELECT * FROM dbo.MCIS_生产数据 WHERE 日期 = '" + Replace(SCSJ__MMColParam, "'", "''") + "' ORDER BY 日期 DESC"
ELSE
SCSJ.Source = "SELECT * FROM dbo.MCIS_生产数据 WHERE 日期 LIKE '" + Replace(SCSJ__MMColParam, "'", "''") + "' ORDER BY 日期 DESC"
END IF
SCSJ.CursorType = 0
SCSJ.CursorLocation = 2
SCSJ.LockType = 1
SCSJ.Open()

SCSJ_numRows = 0
%>