推薦: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下一頁