国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

來自CSDN的"無限流"分頁程序

2024-05-04 11:05:57
字體:
供稿:網(wǎng)友

      1. 以下是代碼片段:
        ’******************************************************************
        ’** 本程序名:"無限流"分頁程序
        ’** 作者:Arbiter(AAsx)
        ’** 版本:Million Level
        ’**
        ’** QQ:22222xx
        ’** Email:Arbiter@21cn.com
        ’** http://www.imagecity.org/
        ’******************************************************************
        ’**
        ’** 【作者的話】
        ’**
        ’** 分頁程序無疑是許多網(wǎng)絡(luò)程序功能中一個(gè)比較麻煩的東西,事實(shí)上現(xiàn)在
        ’** 為止絕大部分人還是在使用傳統(tǒng)的分頁方法(Rs.PageSize=xx),而了解
        ’** 數(shù)據(jù)庫操作的人都知道,這種傳統(tǒng)方式有個(gè)弊端:第一次打開頁面時(shí),
        ’** 它會(huì)預(yù)讀所有的記錄集,這當(dāng)在數(shù)據(jù)大的時(shí)候,這將是致命的,而且接
        ’** 下來的翻頁速度也會(huì)非常慢,很占用資源。對(duì)于十萬數(shù)量級(jí)以上的數(shù)據(jù)
        ’** 庫這種傳統(tǒng)分頁方式已經(jīng)顯得非常無力,更別說百萬級(jí)了(根本沒法操
        ’** 作)?;谶@種原因,促使我做了本程序。
        ’**
        ’** 【程序功能】
        ’**
        ’** 針對(duì)大型的數(shù)據(jù)庫進(jìn)行分頁操作,理想的可操作的數(shù)據(jù)記錄量在200萬
        ’** 以內(nèi)(Max Level版將無數(shù)量限制,且無論數(shù)據(jù)庫多大,翻頁速度都是
        ’** 不變),這是Million Level版分頁程序在賽揚(yáng)1G、內(nèi)存512、win2k環(huán)
        ’** 境下的測(cè)試數(shù)據(jù):
        ’**
        ’** SQLserver 2k 10萬條記錄 每頁顯示20條:
        ’** 平均翻頁速度:45ms
        ’** SQLserver 2k 100萬條記錄 每頁顯示20條:
        ’** 平均翻頁速度:350ms
        ’**
        ’**
        ’** 【分頁原理】
        ’**
        ’** 本程序不再使用Rs.PageSize的方式分頁,連接數(shù)據(jù)庫的游標(biāo)類型
        ’** 也不是使用conn,1,x,而是conn,0,1,這應(yīng)是最快的游標(biāo)類型了,不要
        ’** 以為這樣會(huì)使程序變得復(fù)雜,相反,程序非常簡(jiǎn)單,如果你看不明白,
        ’** 應(yīng)該是我的編程風(fēng)格你不習(xí)慣,而非程序復(fù)雜。
        ’** "無限流"分頁的中心是:每頁只讀出需要顯示的記錄,不再象傳統(tǒng)
        ’** 分頁程序預(yù)讀全部的數(shù)據(jù),這正在本程序最大的優(yōu)點(diǎn)--占用資源少,同
        ’** 理速度也得到非常大的提升,特別在數(shù)據(jù)量越大的時(shí)候,它的速度優(yōu)勢(shì)
        ’** 越明顯(100萬記錄才350ms左右)。
        ’** 當(dāng)程序執(zhí)行后,使用CurcorBegin和CurcorEnd記錄顯示的第一條記
        ’** 錄和最后一條記錄的ID值,作為下一次翻頁的標(biāo)記,然后利用Top xx取
        ’** 出需要的數(shù)據(jù)顯示,同時(shí)又再對(duì)ID值進(jìn)行記錄。
        ’**
        ’** 【結(jié) 言】
        ’**
        ’** 本程序?yàn)楣蚕戆?,提供給各程序愛好者研究使用,若要轉(zhuǎn)載、散播、修
        ’** 改或作其他用途,請(qǐng)尊重作者的辛勞,注明出處。
        ’** 如果本程序中有錯(cuò)漏、非最優(yōu)化等缺點(diǎn),請(qǐng)到www.csdn.net的Web開發(fā)/
        ’** ASP欄目中發(fā)表討論,為了中國(guó)軟件事業(yè)的發(fā)展,請(qǐng)不要固步自封:)
        ’**
        ’********************************************************************
        Option Explicit
        ’Response.Flush
        Dim BeginTime,EndTime
        BeginTime=Timer
        Dim conn,SQLstr,Rs,DefRecordNum,CursorBegin,CursorEnd,CurPageNum,hav
        DefRecordNum=20
        ’--------------獲取相關(guān)參數(shù)----------
        If Request("CursorBegin")="" Then CursorBegin=0 Else CursorBegin=Request("CursorBegin")
        If Request("CursorEnd")="" Then CursorEnd=0 Else CursorEnd=Request("CursorEnd")
        If Request("CurPageNum")<>"" Then
        CurPageNum=CLng(Request("CurPageNum"))
        If CurPageNum<=0 Then CurPageNum=1
        Else
        CurPageNum=1
        End If
        hav=Request("hav")
        If hav="" Then hav="next"
        ’----------------End-----------------
        ’------------顯示翻頁內(nèi)容函數(shù)--------
        Function TurnPageFS(DispRecordNum)
        Dim n
        While Not(Rs.Eof) And n<DispRecordNum
        n=n 1
        Response.Write "<tr>"&_
        "<td bgcolor=’efefef’>"&Rs(0)&"</td>"&_
        "<td bgcolor=’efefef’>"&Rs(1)&"</td>"&_
        "<td bgcolor=’efefef’>"&Rs(2)&"</td>"&_
        "<td bgcolor=’efefef’>"&Rs(3)&"</td>"&_
        "<td bgcolor=’efefef’>"&Rs(4)&"</td>"&_
        "<td bgcolor=’efefef’>"&Rs(5)&"</td>"&_
        "</tr>"
        If n=1 Then CursorBegin=Rs(0)
        If n=DefRecordNum Or Rs.Eof Then CursorEnd=Rs(0)
        Rs.MoveNext
        Wend
        End Function
        ’-------------連接數(shù)據(jù)庫-------------
        Set conn=Server.CreateObject("Adodb.Connection")
        ’SQLstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("mldata.mdb")
        SQLstr="Driver={SQL Server};server=arbiter;uid=arbiter;pwd=123456;database=mldata"
        conn.Open SQLstr
        ’---------統(tǒng)計(jì)總記錄數(shù)/總頁數(shù)---------
        ’-PS:推薦使用count(ID),ID為自動(dòng)編號(hào)且索引,否則速度有可能大打折扣
        ’-PS:此統(tǒng)計(jì)是本程序中最耗資源的一部分,如果取消這段程序,速度會(huì)快上10倍左右
        Dim TotalRecords,TotalPages
        SQLstr="Select count(ID) As RecordSum From ABC"
        Set Rs=conn.Execute(SQLstr,0,1)
        TotalRecords=Rs("RecordSum")
        TotalPages=Abs(Int(TotalRecords/DefRecordNum*(-1)))
        Rs.Close
        Set Rs=Nothing
        ’--------根據(jù)hav選擇相應(yīng)的SQL字串-----
        Select Case(hav)
        Case "back"
        CursorEnd=CursorBegin
        SQLstr="Select Top "&DefRecordNum&"_
        ID,Title,FileName,K,ImgSize,NameSon _
        From ABC Where ID<"&CursorBegin&_
        " And ID In (Select Top "&DefRecordNum_
        &" ID From ABC Where ID<"&CursorBegin_
        &" Order by ID DESC) Order by ID"
        Case "next"
        SQLstr="Select Top "&DefRecordNum_
        &" ID,Title,FileName,K,ImgSize,NameSon From ABC Where ID>"&CursorEnd&_
        " Order by ID"
        End Select
        Set Rs=conn.Execute(SQLstr,0,1)
        %>
        發(fā)表評(píng)論 共有條評(píng)論
        用戶名: 密碼:
        驗(yàn)證碼: 匿名發(fā)表
        主站蜘蛛池模板: 洪雅县| 东明县| 常州市| 武清区| 英吉沙县| 八宿县| 桐柏县| 邢台市| 九江县| 建湖县| 玛多县| 新河县| 湾仔区| 沈丘县| 苍南县| 勐海县| 西乌珠穆沁旗| 自治县| 乡宁县| 铜鼓县| 曲阳县| 寻乌县| 神池县| 通江县| 绩溪县| 台东县| 齐河县| 宝坻区| 和顺县| 满洲里市| 厦门市| 南平市| 龙海市| 兴安盟| 楚雄市| 鸡泽县| 左云县| 白水县| 修水县| 濮阳县| 攀枝花市|

        <td id="zan3y"></td>
        <track id="zan3y"><tbody id="zan3y"></tbody></track>