日期:2013-09-09  浏览次数:21422 次

asp分页的一个类,

在50,000条记录下测试过,速度比ado的那个要快多了

<%

'************************************************************************************
'具体用法
'Set conn=Server.CreateObject("ADODB.Connection")
'conn.open "DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=1230;DATABASE=Music"
'set rs = mp.Execute("select * from MusicList",conn,29)
'while not rs.eof
' response.write rs2("MusicName")&"<br>"
' rs2.MoveNext
'wend
'mp.pageDispaly()
'************************************************************************************
Class MyPage
private MyPage_Conn,MyPage_StrSql,MyPage_TotalStrSql,MyPage_RS,MyPage_TotalRS
private MyPage_PageSize
private MyPage_PageAbsolute,MyPage_PageTotal,MyPage_RecordTotal
private MyPage_Url
public property let conn(strConn)
set MyPage_Conn = strConn
end property

public property let PageSize(intPageSize)
MyPage_PageSize = Cint(intPageSize)
end property

public function PageExecute(strSql)
MyPage_PageAbsolute = MyPage_PageAbsoluteRequest()
MyPage_TotalStrSql = FormatMyPage_TotalStrSql(strSql)
set MyPage_TotalRS = MyPage_Conn.execute(MyPage_TotalStrSql)
MyPage_RecordTotal = MyPage_TotalRS("total")
MyPage_PageTotal = Cint(MyPage_RecordTotal/MyPage_PageSize)
MyPage_StrSql = FormatMyPage_StrSql(strSql)
set MyPage_RS = MyPage_Conn.execute(MyPage_StrSql)
dim i
i = 0
while not MyPage_RS.eof and i<(MyPage_PageAbsolute-1)*MyPage_PageSize
i = i + 1
MyPage_RS.MoveNext
wend
set PageExecute = MyPage_RS
end function

public function Execute(strSql,strConn,intPageSize)
conn = strConn
PageSize = intPageSize
set Execute = PageExecute(strSql)
end function

public function pageDispaly()
MyPage_Url = ReadMyPage_Url
firstPageTag = "<font face=webdings>9</font>" '|<<
LastPageTag = "<font face=webdings>:</font>" '>>|
previewPageTag = "<font face=webdings>7</font>" '<<
nextPageTag = "<font face=webdings>8</font>" '>>
dim strAnd
if instr(MyPage_Url,"?")=0 then
strAnd = "?"
else
strAnd = "&"
end if
response.write "<table width=100% border=0 cellspacing=0 cellpadding=0>"
response.write "<tr>"
response.write "<td align=left>"
response.write "页次:"&MyPage_PageAbsolute&"/"&MyPage_PageTotal&"页 "
response.write "主题数:"&MyPage_RecordTotal
response.write "</td>"
response.write "<td align=right>"
response.write "分页:"
if MyPage_PageAbsolute>10 then
response.write "<a href='"&MyPage_Url&strAnd&"MyPage_PageNo=1'>"&firstPageTag&"</a>"
response.write "<a

href='"&MyPage_Url&strAnd&"MyPage_PageNo="&(MyPage_PageAbsolute-10)&"'>"&previewPageTag&"</a>"
else
response.write firstPageTag
response.write previewPageTag
end if
response.write " "
dim CurrentStartPage,i
i = 1
CurrentStartPage=(Cint(MyPage_PageAbsolute)\10)*10+1
if Cint(MyPage_PageAbsolute) mod 10=0 then
CurrentStartPage = CurrentStartPage - 10
end if
while i<11 and CurrentStartPage<MyPage_PageTotal+1
if CurrentStartPage < 10 then
FormatCurrentStartPage = "0" & CurrentStartPage
else
FormatCurrentStartPage = CurrentStartPage
end if
response.write "<a

href='"&MyPage_Ur