濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 查詢翻頁(yè)優(yōu)化第1/2頁(yè)

查詢翻頁(yè)優(yōu)化第1/2頁(yè)

熱門標(biāo)簽:外呼系統(tǒng)API接口 金昌電話機(jī)器人價(jià)格 縣域地圖標(biāo)注打印店 個(gè)人可以辦理400電話么 修改地圖標(biāo)注 萊西電子地圖標(biāo)注 怎么在地圖標(biāo)注自己 鳳臺(tái)百度地圖標(biāo)注店 武夷山旅游地圖標(biāo)注
復(fù)制代碼 代碼如下:

SCRIPT language=VBSCRIPT RUNAT=SERVER>

'//---- COCOON_自定義類_翻頁(yè)優(yōu)化代碼 ----//'
Class cc_db_Pager
    '--------------------------------
    '     COCOON Db_Pager 類 (Ver: 1.02)
    '     作者: Sunrise_Chen (sunrise_chen@msn.com)
    '     請(qǐng)保留此信息,謝謝。
    '     
    '     2003/06 修正一個(gè)錯(cuò)誤,描述:如果ID不唯一,將產(chǎn)生多條重復(fù)記錄的錯(cuò)誤。
    '                           2003.5
    '--------------------------------

    '//-------------------- 定義變量 --------------------//'
    Private sTableName        '//表名
    Private sSqlString        '//自定義Sql語(yǔ)句
    Private aCondition()        '//查詢條件(數(shù)組)
    Private sCondition        '//查詢條件(字符串)
    Private iPage        '//當(dāng)前頁(yè)碼
    Private iPageSize        '//每頁(yè)記錄數(shù)
    Private iPageCount        '//總頁(yè)數(shù)
    Private iRecCount        '//當(dāng)前查詢條件下的記錄數(shù)
    Private iTotalRecCount    '//總記錄數(shù)
    Private sFields        '//輸出的字段名
    Private sOrderBy        '//排序字符串
    Private sSql        '//當(dāng)前的查詢語(yǔ)句
    Private sPkey        '//主鍵
    Private oConn        '//連接對(duì)象
    Private iDefPageSize        '//默認(rèn)每頁(yè)顯示的記錄數(shù)
    Private sProjectName        '/項(xiàng)目名
    Private sVersion        '/版本號(hào)
    Private bShowError        '//是否顯示錯(cuò)誤信息

    '//-------------------- 事件、方法 --------------------//'
    '//類初始化事件
    Private Sub Class_Initialize()
        ReDim aCondition(-1)
        iPage        = 1
        iRecCount        = Null
        iTotalRecCount    = Null
        iPageCount        = Null
        bShowError        = True
        iPageSize        = 10
        sFields        = "*"
        sPkey        = "ID"
        sCondition        = ""
        sOrderBy        = ""
        sSqlString        = ""
        sProjectName    = "COCOON 類系列 數(shù)據(jù)庫(kù)翻頁(yè)優(yōu)化"
        sVersion        = "1.02"
    End Sub

    '//類結(jié)束事件
    Private Sub Class_Terminate()
        Set oConn = Nothing
    End Sub

    '//錯(cuò)誤處理
    Public Sub doError(s)
            Dim sTmp
            sTmp = CLng(Rnd() * 100)
            Response.write( "DIV STYLE='WIDTH:760;font-size:9pt;cursor:hand'>" )
            Response.write( "LABEL ONCLICK='ERRORDIV"sTmp".style.display=(ERRORDIV"sTmp".style.display==""""?""none"":"""")'>" )
            Response.write( "SPAN STYLE='BACKGROUND-COLOR:#CCCC00;COLOR:WHITE;'>〖 CC_db_Pager 提示信息 〗/SPAN>BR>/LABEL>" )
            Response.write( "DIV ID='ERRORDIV"sTmp"' STYLE='DISPLAY:NONE;WIDTH:100%;" )
            Response.write( "BORDER: 1PX SOLID #CCCC00;PADDING:5;overflow:hidden;text-overflow:ellipsis;'>NOBR>" )
            Response.write( "SPAN STYLE='COLOR:RED'>Description/SPAN>: "  s  "BR>" )
            Response.write( "SPAN STYLE='COLOR:RED'>Provider/SPAN>: "  sProjectName )
            Response.write( "  SPAN STYLE='COLOR:RED'>Version/SPAN>: "  sVersion  "BR>" )
            Response.write( "/NOBR>/DIV>/DIV>BR>" )
    End Sub

    '//產(chǎn)生分頁(yè)的SQL語(yǔ)句
    Public Function getSql()
        Dim iStart, iEnd
        Call makeCondition()
        iStart = ( iPage - 1 ) * iPageSize
        iEnd = iStart + iPageSize
        getSql  = " SELECT DISTINCT "  sFields  " FROM ["sTableName"] " _
                 " WHERE ["sPKey"] NOT IN ( " _
                 "   SELECT TOP "iStart" ["sPKey"] FROM ["sTableName"] "  sCondition  " "  sOrderBy  " " _
                 " )" _
                 " AND ["sPKey"] IN ( " _
                 "   SELECT TOP "iEnd" ["sPKey"] FROM ["sTableName"] "  sCondition  " "  sOrderBy  " " _
                 " )" _
                 " "  sOrderBy  " "
    End Function

    '//產(chǎn)生條件字符串
    Private Sub makeCondition()
        If UBound(aCondition)>=0 Then
            sCondition = " WHERE "  Join(aCondition, " AND ")
        End If
    End Sub

    '//計(jì)算總記錄數(shù)(帶條件)
    Private Sub CaculateRecCount()
        On Error Resume Next
        Dim oRs
        Call makeCondition()
        Set oRs = oConn.Execute( "SELECT COUNT(["sPKey"]) FROM ["  sTableName  "]"  sCondition )
        If Err Then
            doError Err.Description
            Response.End()
        End If
        iRecCount = oRs.Fields.Item(0).Value
        Set oRs = Nothing
    End Sub

    '//計(jì)算總記錄數(shù)(不帶條件)
    Private Sub CaculateTotalRecCount()
        On Error Resume Next
        Dim oRs
        Set oRs = oConn.Execute( "SELECT COUNT(["sPKey"]) FROM ["  sTableName  "]" )
        If Err Then
            doError Err.Description
            Response.End()
        End If
        iTotalRecCount = oRs.Fields.Item(0).Value
        Set oRs = Nothing
    End Sub

    '//計(jì)算頁(yè)數(shù)
    Private Sub CaculatePageCount()
        If isNull(iRecCount) Then CaculateRecCount()
        If iRecCount = 0 Then iPageCount = 0 : Exit Sub
        iPageCount = Abs( Int( 0 - (iRecCount / iPageSize) ) )
    End Sub

    '//增加條件
    Public Sub AddCondition(s)
        If Len(s)0 Then Exit Sub
        ReDim Preserve aCondition(UBound(aCondition)+1)
        aCondition(UBound(aCondition)) = s
    End Sub

    '//版本信息
    Public Function Information()
        doError "Coding by A HREF='MAILTO:sunrise_chen@msn.com'>Sunrise_Chen/A> @ A 
    End Function


    '//-------------------- 輸入屬性 --------------------//'
    '//定義連接對(duì)象
    Public Property Set ActiveConnection(o)
        Set oConn = o
    End Property

    '//定義查詢表名
    Public Property Let TableName(s)
        sTableName = s
    End Property

    '//定義需要輸出的字段名
    Public Property Let Fields(s)
        sFields = s
    End Property

    '//定義主鍵
    Public Property Let Pkey(s)
        sPkey = s
    End Property

    '//定義排序規(guī)則
    Public Property Let OrderBy(s)
        sOrderBy = " ORDER BY "  s  " "
    End Property

    '//定義每頁(yè)的記錄條數(shù) 
    Public Property Let PageSize(s)
        iPageSize = s
        If Not isNumeric(iPageSize) Then iPageSize = iDefaultPageSize
        If CLng(iPageSize)1 Then iPageSize = iDefaultPageSize
    End Property

    '//定義當(dāng)前頁(yè)碼
    Public Property Let Page(s)
        iPage = s
        If Not isNumeric(iPage) Then iPage = 1
        If CLng(iPage)1 Then iPage = 1
        Call CaculatePageCount()
        If CLng(iPage)>CLng(iPageCount) And iPageCount>0 Then iPage = iPageCount
    End Property

    '//自定義查詢語(yǔ)句
    Public Property Let Sql(s)
        sSqlString = s
    End Property

    '//-------------------- 輸出屬性 --------------------//'
    '//取得當(dāng)前條件下的記錄數(shù)
    Public Property Get RecordCount
        If isNull(iRecCount) Then CaculateRecCount()
        RecordCount = iRecCount
    End Property

    '//取得當(dāng)前頁(yè)碼
    Public Property Get Page
        Page = iPage
    End Property

    '//取得當(dāng)前頁(yè)碼
    Public Property Get AbsolutePage
        AbsolutePage = iPage
    End Property

    '//取得當(dāng)前查詢的條件
    Public Property Get Condition
        If Len(sCondition)1 Then makeCondition()
        Condition = sCondition
    End Property

    '//取得總的記錄數(shù)
    Public Property Get TotalRecordCount
        If isNull(iTotalRecCount) Then CaculateTotalRecCount()
        TotalRecordCount = iTotalRecCount
    End Property

    '//取得總頁(yè)數(shù)
    Public Property Get PageCount
        If isNull(iPageCount) Then CaculatePageCount()
        PageCount = iPageCount
    End Property

    '//得到分頁(yè)后的記錄集
    Public Property Get Recordset
        On Error Resume Next
        sSql = getSql()
        Set Recordset = oConn.Execute( sSql )
        If Err Then
            If bShowError Then doError Err.Description
            If Len(sSqlString)>0 Then
                Set Recordset = oConn.Execute( sSqlString )
                If Err Then
                    doError Err.Description
                    Response.End()
                End If
            Else
                doError Err.Description
            End If
        End If
        Err.Clear()
    End Property

    '//版本信息
    Public Property Get Version
        Version = sVersion
    End Property

End Class

/SCRIPT>

12下一頁(yè)閱讀全文

標(biāo)簽:涼山 楚雄 邢臺(tái) 南京 上海 通遼 赤峰 清遠(yuǎn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《查詢翻頁(yè)優(yōu)化第1/2頁(yè)》,本文關(guān)鍵詞  查詢,翻頁(yè),優(yōu)化,第,2頁(yè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《查詢翻頁(yè)優(yōu)化第1/2頁(yè)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于查詢翻頁(yè)優(yōu)化第1/2頁(yè)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    保定市| 康保县| 桦甸市| 荣昌县| 望都县| 朔州市| 乌拉特中旗| 衡阳市| 六安市| 西华县| 泰宁县| 阿拉善盟| 张家口市| 岑巩县| 郧西县| 古交市| 琼海市| 南皮县| 沙洋县| 萨迦县| 正蓝旗| 鄂托克前旗| 牟定县| 南投县| 焉耆| 巴彦县| 台南市| 贵南县| 南溪县| 象州县| 沙洋县| 辉南县| 鲜城| 石门县| 芦溪县| 浪卡子县| 襄城县| 五大连池市| 吉木萨尔县| 贵港市| 高尔夫|