当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP进阶教程Ⅸ:留言查询功能(二)

ASP
Access 2000 数据库 80 万记录通用快速分页类
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
收藏的ASP常用的函数集
asp分页的一个类
ASP开发网页牢记注意事项
ASP下操作Excel技术总结分析
ASP数据岛操作类
ASP经典分页类
asp论坛在线人数统计研究
ASP调用SQL SERVER存储程序
asp输出bmp
ASP连接数据库的全能代码
ASP面向对象编程探讨及比较
web文件管理器的后续开发
一小偷类!!有兴趣的可以看看
利用ASP实现事务处理的方法
大数量查询分页显示 微软的解决办法
如何把ASP编写成DLL
asp实现树型结构
超级ASP大分页_我的类容我做主

ASP进阶教程Ⅸ:留言查询功能(二)


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

  我们接上一部分继续讲解如何利用Command对象来执行SQL命令,实现“留言记录日期查询”和“留言簿过去五天留言记录查询”。但在应用Command对象来执行SQL命令之前我们必须在留言数据库中先建立查询,假如我们要查询的是“留言簿过去五天留言记录”,那么在留言数据库中建立查询的具体方法如下所示。(对于数据库,在Access中可以建立五种不同类型的查询,因为我们要查询两个日期之间的留言记录,因此我在这里只以“使用‘设计’视图建立参数查询”为例,当然你也可以“使用向导建立查询”。使用“设计”视图建立查询要比使用向导灵活得多,例如,在“设计”视图中,既可以建立像“选择查询”之类的简单查询,又可以建立像“参数查询”和“操作查询”之类的复杂查询,而且在“查询设计网格”中既能够增加、移动、插入和删除字段,也能够设置准则和排序次序,计算总和和平均值,等等)

  在Access中,使用‘设计’视图建立参数查询:
  一、打开留言数据库,在“数据库”窗口中单击“查询”选项卡,然后单击“新建”按钮 。
  二、在“新建查询”对话框中,单击“设计视图”,然后单击“确定”按钮。
  三、在“显示表”对话框中,选择“表”选项卡,然后单击“添加按钮或者双击“guestbook”表的名称,将它添加到“查询”窗口中,然后关闭“显示表”的对话框。
  四、在“guestbook”表的字段列表中,单击“ID”字段的字段名,按住鼠标不放,将它拖到“查询设计网格”的第一列。同样,可以将“姓名”、“电话”、“EMAIL”、“主题”、“留言”和“时间”字段的字段名依次拖到“查询设计网格”的其它各列中。
  五、在作为参数使用的“时间”字段下的“准则”单元格中,键入下列表达式:
Between[请键入开始日期]And[请键入结束日期]。
  六、单击工具栏上的“保存”按钮保存查询,这时会弹出一个“另存为”的对话框,我们在“另存为”对话框中输入该查询表的名称“留言记录日期查询”,然后单击“确定”按钮。 

  在留言数据库中建立了查询后,我们接下来将利用Command对象来执行日期查询的SQL命令编写如下(Date.asp):
< !--#include file="adovbs.inc" -->
< !--#include file="Search.asp" -->
< %
Head="留言簿查询"
start=Request("start")
last=Request("last")
'读取用户输入的数据,然后指定给start及last变量
If start="" Then start = #99-10-1#
If last="" Then last = #99-12-30#
'如果用户没有输入查询的开始时间和结束时间时,在“开始时间”和“结束时间”的查询框中显示这里定义的缺省值 99-10-1和99-12-30
% >
< h2 Align="Center"> < %=Head%>< /h2>
< hr noshade color="red">
< %
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("book2.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "留言记录日期查询"
'将 Connection对象及SQL命令设置给Command对象的ActiveConnection属性以及 CommandText属性
ReDim param(1)
'声明含有两个元素的数组,因为该“留言日期查询”必须有查询的起始时间和结束时间,所以在这里必须声明一个含有两个元素的数组
param(0) = CDate(start)
param(1) = CDate(last)
Set rs = cmd.Execute( ,param )
'将start及last变量指定给param数组,然后传入cmd.Execute函数中,在这里函数cmd.Execute含有两个参数,其中第一个参数是用于希望返回的数据记录数,这里缺省表示希望返回所有的数据记录;参数二“param”是SQL命令的参数。
Search rs
%>
< hr noshade color="red"> < div align="center">
< a href="Datesearch.asp" class="text2">返回留言查询< /a>
  同理,利用Command对象来执行SQL命令,实现“留言簿过去五天留言记录查询”的原理与上述实现“留言记录日期查询”的原理是一样的,我们可以编写如下所示:
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("book2.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "留言簿过去五天留言记录"
Set rs = cmd.Execute
Search rs

  至此,两种实现查询的方法我们都已学习过了,大家能说出它们存在着什么区别吗?
  打个比方,如果我们