快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

在记录集中加入判定使之灵活

在应用中,有时候会要求按照日期来排列数据,并且还会需要简朴的按日期来检索数据,比如在页面上加入一个跳转菜单,包含数据的日期列表,然后选择日期后传递日期参数跳转。这种做法在没有日期的时候应该显示哪一天的数据呢?
通常会用“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
%>
返回类别: 教程
上一教程: 用ASP实现在线压缩与解压缩
下一教程: EVENT对象详解

您可以阅读与"在记录集中加入判定使之灵活"相关的教程:
· 防止别人在QUERYSTRING中加入DELETE或其他字符删除你的数据库内容
· 在ASP中轻松实现记录集分页显示
· 在ASP中使用断开的记录集
· 在您的网站中加入互动功能
· 分栏显示记录集的表格演示,并实现了分页
    微笑服务 优质保证 索取样品