使用Filter实现信息的二次检索

作者:dnawo 来源:蓝色理想 时间:2007-10-08 19:19:00 

思考一个问题:怎么实现在第一次检索的基础上进行二次检索?
通常,我们的做法是第一次检索时保存检索条件,在第二次行检索时组合两次检索条件对数据库进行一次新的查询,如:
第一次检索:Select * from table where age>18
第二次检索:Select * from table where age>18 and name like 'zh%'
这样做虽可以实现我们所要的结果,但效率上个人认为却大打了折扣!
能不能缓存第一次检索的记录集,第二次检索时只在缓存的记录集上进行,而不是重新对数据库进行查询?
RecordSet对象有个属性Filter,它的作用是通过添加条件以控制欲显示的记录集,但并不影响原本的记录集!我们来看下怎么用它实现二次检索:


<%
Dim oConn,oRs
Set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("db1.mdb")
Set ors = Server.CreateObject("ADODB.RecordSet")
ors.Open "select * from t1 where age>20",oConn,1,2
Response.Write "一次检索:select * from t1 where age>20<br/>"
Response.Write "----------------------------------<br/><br/>"
Do while not ors.Eof
    Response.Write ors("name") & ":" & ors("age") & "<br/>"
    ors.MoveNext
Loop
Response.Write "总计:" & ors.RecordCount & "<br/>"
Response.Write "----------------------------------<br/><br/>"
Response.Write "二次检索:Filter(name like '王%')<br/>"
Response.Write "----------------------------------<br/><br/>"
ors.Filter = "name like '王%'"
If not(oRs.Eof and ors.Bof) Then ors.MoveFirst
Do while not ors.Eof
    Response.Write ors("name") & ":" & ors("age") & "<br/>"
    ors.MoveNext
Loop
Response.Write "总计:" & ors.RecordCount & "<br/>"
Response.Write "----------------------------------<br/>"
ors.Close
Set ors = Nothing
oConn.Close
Set oConn = Nothing
%>


结果:


标签:filter,检索
0
投稿

猜你喜欢

  • 判断Session的过期时间 采用JavaScript实时显示剩余多少秒

    2011-04-04 10:48:00
  • SEM之医疗网站跳出率 逼迫访客跳出网站的六宗罪

    2012-03-05 20:13:36
  • 文字适度阅读的宽度或者字数

    2007-10-26 07:31:00
  • JavaScript 日期下拉选择器

    2008-10-31 12:13:00
  • Facebook的特别之处是什么?

    2008-08-04 12:57:00
  • js更好地截取字符串

    2008-03-11 19:00:00
  • 通过事务日志解决SQL Server常见四大故障(一)

    2009-03-25 13:46:00
  • asp如何计算下载一个文件需要多长时间?

    2009-11-25 20:17:00
  • 教你如何利用SQL Server保护数据

    2010-06-07 14:18:00
  • Oracle数据库与SQL Server数据库镜像对比

    2009-04-11 16:24:00
  • W3C网页内容无障碍指南2.0(WCAG)

    2008-11-20 13:40:00
  • 仿google的asp分页代码

    2009-03-08 18:27:00
  • 解决MySQL数据库中与优化器有关的问题

    2008-12-17 16:18:00
  • SQL Server 2005数据转换服务设计问题集锦

    2008-12-26 17:29:00
  • DW表格应用之细线框的制作

    2008-02-03 19:00:00
  • 静态页面实现文章点击数统计的js方法

    2008-01-23 19:17:00
  • 在ASP中使用SQL语句之12:连接

    2009-04-23 18:27:00
  • Javascript——浅析注册事件

    2008-08-19 12:44:00
  • 如何在网页上使用VBScript和JScript

    2008-05-05 19:53:00
  • 困惹的A标签

    2007-12-04 12:36:00
  • asp之家 网络编程 m.aspxhome.com