數(shù)據(jù)分頁存儲過程代碼

字號:

<%
    '平臺:Win2000+IIS5.0+Sql2000
    '附言:升級上一次版本,上一次版為SQL版本,沒有利用上存儲過程
    '上一版本 :[原創(chuàng)]優(yōu)秀的數(shù)據(jù)分頁代碼——(忙乎了半天)(http://bbs.bc-cn.net/dispbbs.asp?BoardID=10&ID=175543)
    '----------------------------------------以下代碼為網(wǎng)頁代碼
    Response.Buffer = True
    Dim SqlLocalName,SqlUsername,SqlPassword,SqlDatabaseName
    Dim ConnStr,Conn
    '''''''''''''''''''''''''''''''''SQL數(shù)據(jù)庫 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    SqlLocalName ="(local)" '連接IP [ 本地用 (local) 外地用IP ]
    SqlUsername ="sa" '數(shù)據(jù)庫用戶名
    SqlPassword ="XXXXXX" '用戶密碼
    SqlDatabaseName="NewsTable" '數(shù)據(jù)庫名
    ConnStr = "Provider=Sqloledb;User ID=" & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    On Error Resume Next
    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.open ConnStr
    If Err Then
    err.Clear
    Set Conn = Nothing
    Response.Write "
數(shù)據(jù)庫連接出錯,請檢查數(shù)據(jù)庫連接字串
    "
    Response.End
    End If
    '本類進(jìn)行實例化代碼,不將所有可能性條件分頁考慮進(jìn)去。本類僅作參考
    '-------------------------------------
    'PageNo-當(dāng)前頁;PageSizeX-分頁大小;PageCountX-總頁數(shù);FieldCount-總記錄數(shù);StrWhere-查詢條件
    Dim PageNo,PageSizeX,PageCountX,FieldCount,StrWhere
    '進(jìn)行賦值
    PageNo=trim(Request.Querystring("PageNo"))
    PageSizeX=30 '定義分頁大小
    if isnumeric(PageNo) or PageNo="" then '如果沒有Page值,進(jìn)行初始化值
    PageNo=abs(PageNo)
    if PageNo=0 then PageNo=1
    else
    PageNo=1
    end if
    StrWhere="(ClassCode=0101 and Hits>20)" '注意,此處注意字符的長度
    set recom = server.createobject("adodb.command")
    recom.activeconnection = Conn
    recom.commandtype = 4
    recom.commandtext = "News_Class"
    recom.Parameters.Append recom.CreateParameter("@StrWhere",202,1,100,StrWhere)
    recom.Parameters.Append recom.CreateParameter("@PageSize",3,1,,PageSizeX)
    recom.Parameters.Append recom.CreateParameter("@PageIndex",3,1,,PageNo)
    set rs = recom.execute ()
    if rs.eof then
    set rs=nothing : set recom=nothing : Conn.Close : set Conn=nothing
    response.write ""
    response.end
    end if
    '顯示數(shù)據(jù)
    do while not rs.eof
    response.write""&rs("Title")&"   添加時間:"&rs("AddTime")&"
    "
    rs.movenext
    loop
    '取得記錄總數(shù),計算頁數(shù)