筆者大致講述ADO 存取的先關(guān)主要事宜
什么是 ADO 存取時(shí)的分頁(yè)顯示?如果你使用過(guò)目前眾多網(wǎng)站上的電子公告板程序的話(huà),如果你要使用網(wǎng)速穩(wěn)定的互聯(lián)網(wǎng),這樣就可以有效地使用ADO 存取的相關(guān)說(shuō)明。。。。
《動(dòng)態(tài)網(wǎng)站設(shè)計(jì)十八般武藝 -- 篇》一文從***期至今已和朋友們一起度過(guò)了大半個(gè)年頭,相信通過(guò)在這一段時(shí)間中的學(xué)習(xí)、實(shí)踐到再學(xué)習(xí)、再實(shí)踐,大家已經(jīng)能夠熟練運(yùn)用 ASP 的內(nèi)建對(duì)象、 ActiveX 組件去編寫(xiě)一些基本的 ASP 應(yīng)用程序。
從我收到的朋友們的來(lái)信中可以明顯的感覺(jué)到,大家的 ASP 功力正不斷地提升。最近很多朋友來(lái)信希望我寫(xiě)一些 ASP 在現(xiàn)實(shí)運(yùn)用中的實(shí)例。因此,從本期開(kāi)始我決定將《動(dòng)態(tài)網(wǎng)站設(shè)計(jì)十八般武藝 --ASP 篇》的定位從介紹和學(xué)習(xí) ASP 基礎(chǔ)知識(shí)轉(zhuǎn)向到 ASP 實(shí)際運(yùn)行的探討和深化。應(yīng)朋友們的要求,在本期中我將給大家著重談一談“ADO 存取時(shí)如何分頁(yè)顯示”的問(wèn)題。
這就是數(shù)據(jù)庫(kù)查詢(xún)的分頁(yè)顯示,如果你還不明白,去看看 yahoo 等搜索引擎的查詢(xún)結(jié)果就會(huì)明白了。 那么究竟如何才能做到將的查詢(xún)結(jié)果分頁(yè)顯示呢?其實(shí)方法有很多,但主要有兩種:
一、將中所有符合查詢(xún)條件的記錄一次性的都讀入 recordset 中,存放在內(nèi)存中,ADO 存取然后通過(guò) ADO Recordset 對(duì)象所提供的幾個(gè)專(zhuān)門(mén)支持分頁(yè)處理的屬性: PageSize( 頁(yè)大小 )、 PageCount( 頁(yè)數(shù)目 ) 以及 AbsolutePage( 絕對(duì)頁(yè) ) 來(lái)管理分頁(yè)處理。
二、根據(jù)客戶(hù)的指示,每次分別從符合查詢(xún)條件的記錄中將規(guī)定數(shù)目的記錄數(shù)讀取出來(lái)并顯示。
兩者的主要差別在于前者是一次性將所有記錄都讀入內(nèi)存然后再根據(jù)指示來(lái)依次做判斷分析從而達(dá)到分頁(yè)顯示的效果,而后者是先根據(jù)指示做出判斷并將規(guī)定數(shù)目的符合查詢(xún)條件的記錄讀入內(nèi)存,從而直接達(dá)到分頁(yè)顯示的功能。#t#
我們可以很明顯的感覺(jué)到,當(dāng)中的記錄數(shù)達(dá)到上萬(wàn)或更多時(shí),***種方法的執(zhí)行效率將明顯低于第二種方法,因?yàn)楫?dāng)每一個(gè)客戶(hù)查詢(xún)頁(yè)面時(shí)都要將所有符合條件的記錄存放在內(nèi)存中,然后在進(jìn)行分頁(yè)等處理,如果同時(shí)有超過(guò) 100 個(gè)的客戶(hù)在線(xiàn)查詢(xún),那么 應(yīng)用程序的執(zhí)行效率將大受影響。
但是,當(dāng)服務(wù)器上數(shù)據(jù)庫(kù)的記錄數(shù)以及同時(shí)在線(xiàn)的人數(shù)并不是很多時(shí),ADO 存取在執(zhí)行效率上是相差無(wú)幾的,此時(shí)一般就采用***種方法,因?yàn)?**種方法的 ASP 程序編寫(xiě)相對(duì)第二種方法要簡(jiǎn)單明了得多。