推荐:ASP 3.0高级编程(三十一)7.1.2 语义或运行期错误语法错误的发现和处理是令人烦恼的,但在编程中会遇到一些真正令人兴奋的另一类型的错误-语义错误(semantic error)或称&ld
思考一个问题:怎么实现在第一次检索的基础上进行二次检索?
通常,我们的做法是第一次检索时保存检索条件,在第二次行检索时组合两次检索条件对数据库进行一次新的查询,如:
第一次检索: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 %> |
结果:
分享:深入理解ASP中FSO的神奇功能在ASP中,FSO的意思是File System Object,即文件系统对象。我们将要操纵的计算机文件系统,在这里是指位于web服务器之上。所以,确认你对此拥有合适的权限。理想情况下,你可以在自己的机器
共2页上一页12下一页