使用Filter实现信息的2次检索
核心提示:思考1个题目:怎样实现在第1次检索的基础上进行2次检索? 通常,我们的做法是第1次检索时保存检索条件,在第2次行检索时组合两次检索条件对数据库进行1次新的查询,如: 第1次检索:Select * from table where age>18 第2次检索:Select * from table
思考1个题目:怎样实现在第1次检索的基础上进行2次检索?
通常,我们的做法是第1次检索时保存检索条件,在第2次行检索时组合两次检索条件对数据库进行1次新的查询,如:
第1次检索:Select * from table where age>18
第2次检索:Select * from table where age>18 and name like 'zh%'
这样做虽可以实现我们所要的结果,但效率上个人以为却大打了折扣!
能不能缓存第1次检索的记录集,第2次检索时只在缓存的记录集上进行,而不是重新对数据库进行查询?
RecordSet对象有个属性Filter,它的作用是通过添加条件以控制欲显示的记录集,但其实不影响本来的记录集!我们来看下怎样用它实现2次检索:
以下为援用的内容: Response.Write "1次检索:select * from t1 where age>20
ors.Close |
结果:
1 2 下1页
核心提示:思考1个题目:怎样实现在第1次检索的基础上进行2次检索? 通常,我们的做法是第1次检索时保存检索条件,在第2次行检索时组合两次检索条件对数据库进行1次新的查询,如: 第1次检索:Select * from table where age>18 第2次检索:Select * from table
但这还有1个题目:很多情况下两次检索其实不是同时进行的,而是在第1次检索完成后手动输进条件再进行2次检索,所以我们得想办法在2次检索时第1次检索的记录集仍存在!我们可以用Session对象!将Connection对象和RecordSet对象都保存在Session中,实现以下:
以下为援用的内容: List.asp: <% Set Session("conn")=Server.CreateObject("ADODB.Connection") Session("conn").Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("db1.mdb") Set Session("rs") = Server.CreateObject("ADODB.RecordSet") Session("rs").Open "select * from t1 where age>20",Session("conn"),1,2 Response.Write "1次检索:select * from t1 where age>20 " Response.Write "---------------------------------- " Do while not Session("rs").Eof Response.Write Session("rs")("name") & ":" & Session("rs")("age") & " " Session("rs").MoveNext Loop Response.Write "总计:" & Session("rs").RecordCount & " " Response.Write "---------------------------------- " %> Search.asp: <% Response.Write "2次检索条件:" & Trim(Request("f")) & " " Response.Write "---------------------------------- " Session("rs").Filter = "" Session("rs").Filter = Trim(Request("f")) If not(Session("rs").Eof and Session("rs").Bof) Then Session("rs").MoveFirst do while not Session("rs").Eof Response.Write Session("rs")("id") & ":" & Session("rs")("name") & " " Session("rs").MoveNext loop Response.Write "总计:" & Session("rs").RecordCount & " " Response.Write "---------------------------------- " %> |
结果:
参考文章:
1.ado屡次按条件使用1个记录集中的数据的方法:http://blog.csdn.net/precipitant/archive/2005/08/04/446003.aspx
2.ado 记录集对象的filter属性使用中需留意的地方:http://blog.csdn.net/precipitant/archive/2005/12/13/550979.aspx
原文:http://www.mzwu.com/article.asp?id=1106
上1页 1 2 唐山网站建设www.fw8.netTAG:数据库,题目,组合,对象,条件
评论加载中...
|