使用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
投稿

猜你喜欢

  • mysql如何查询两个日期之间最大的连续登录天数

    2024-01-14 09:26:22
  • python实时分析日志的一个小脚本分享

    2021-03-26 14:12:29
  • python文件操作seek()偏移量,读取指正到指定位置操作

    2023-07-22 10:29:14
  • 使用OpenCV实现人脸图像卡通化的示例代码

    2023-01-03 13:38:49
  • 详解如何在nuxt中添加proxyTable代理

    2024-05-10 14:20:29
  • 浅谈webpack编译vue项目生成的代码探索

    2024-02-23 18:02:05
  • MySQL 两张表数据合并的实现

    2024-01-28 07:25:49
  • web程序员的思考

    2009-08-04 13:10:00
  • MySQL对于各种锁的概念理解

    2024-01-17 17:18:36
  • mysql 5.5 安装配置方法图文教程

    2024-01-20 04:28:35
  • Vue-cli创建项目从单页面到多页面的方法

    2024-05-21 10:17:04
  • python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法

    2023-06-22 01:57:01
  • flask项目集成swagger的方法

    2022-08-04 09:00:48
  • php字符串截取函数mb_substr用法实例分析

    2024-05-02 17:35:09
  • 前后端分离和跨域问题的详细解决方案(CORS的原理)

    2023-05-30 01:19:26
  • Django项目后台不挂断运行的方法

    2021-09-28 05:04:54
  • python 调整图片亮度的示例

    2021-06-05 22:52:01
  • python实现报表自动化详解

    2021-12-31 04:28:14
  • FCKEidtor 自动统计输入字符个数(IE)

    2023-01-28 10:07:54
  • 使用 Python 读取电子表格中的数据实例详解

    2023-10-15 02:40:57
  • asp之家 网络编程 m.aspxhome.com