<%
set rs= Server.CreateObject("adodb.recordset")
rs.open "select * from smallclass where bigclass=2 order by xh asc,id asc",conn,1,1
do while not rs.eof
%>
<%
set rs= Server.CreateObject("adodb.recordset")
rs.open "select smallclass,id from smallclass where bigclass=2 order by xh asc,id asc",conn,1,1
do while not rs.eof
%>
"
sFirstPage = "First"
sPreviousPage = "Previous"
sNextPage = "Next"
sLastPage = "Last"
sNumericPage = " {$PageNum} "
iNumericJump = 3
iMaxRecord=0
Set Pager = new Cls_Pager
End Sub
Private Sub Class_Terminate()
If IsObject(oConn) Then oConn.Close:Set oConn=Nothing
Pager = Null:Set Pager = Nothing
if session(Pagename)<>"" then session(Pagename)=""
if Request.Cookies(Pagename)<>"" then Response.Cookies(Pagename)=""
If Application(sPagename) <> "" Then
Application.Lock
Application(sPagename) = ""
Application.Unlock
end if
End Sub
Public Property Set Conn(ByRef o)
Set oConn = o
End Property
Public Property Let PageSize(ByVal i)
iPageSize = CheckNum(i,0,-1)
End Property
Public Property Let PageParm(ByVal s)
If Len(s)>0 Then sPageParm = s
End Property
Public Property Let PageIndex(ByVal i)
iPageIndex = CheckNum(i,0,-1)
End Property
Public Property Let Database(ByVal s)
If Len(s)>0 Then sDatabase = LCase(s)
End Property
Public Property Let Field(ByVal s)
If Len(s)>0 Then sField = s
End Property
Public Property Let Table(ByVal s)
sTable = s
End Property
Public Property Let Condition(ByVal s)
If Len(s)>0 Then sCondition = " WHERE " & s
End Property
Public Property Let OrderBy(ByVal s)
If Len(s)>0 Then sOrderBy = " ORDER BY " & s
End Property
Public Property Let PKey(ByVal s)
sPKey = s
End Property
Public Property Let Template(ByVal s)
If Len(s)>0 Then sTemplate = s
End Property
Public Property Let FirstPage(ByVal s)
sFirstPage = s
End Property
Public Property Let PreviousPage(ByVal s)
sPreviousPage = s
End Property
Public Property Let NextPage(ByVal s)
sNextPage = s
End Property
Public Property Let LastPage(ByVal s)
sLastPage = s
End Property
Public Property Let NumericPage(ByVal s)
sNumericPage = s
End Property
Public Property Let NumericJump(ByVal i)
iNumericJump = CheckNum(i,-1,-1)
End Property
Public Property Let MaxRecord(ByVal i)
if isnumeric(i) then
iMaxRecord =i
end if
End Property
Public Property Let RecordCount(ByVal i)
Select Case i
Case -1
If Session("yevg") = "" Then
iRecordCount = RowCount()
Session("yevg") = iRecordCount
Else
iRecordCount = Session("yevg")
End If
Case -2
If Request.Cookies("yevg") = "" Then
iRecordCount = RowCount()
Response.Cookies("yevg") = iRecordCount
Else
iRecordCount = Request.Cookies("yevg")
End If
Case -3
If Application("yevg") = "" Then
iRecordCount = RowCount()
Application.Lock
Application("yevg") = iRecordCount
Application.Unlock
Else
iRecordCount = Application("yevg")
End If
Case Else
If i < 1 Then
iRecordCount = RowCount()
Else
iRecordCount = i
End If
End Select
End Property
Public Property Get RowCount()
If iRecordCount < 1 Then
RowCount = oConn.Execute("SELECT COUNT(*) FROM " & sTable & " " & sCondition,0,1)(0)
if RowCount>iMaxRecord and iMaxRecord<>0 then
RowCount=iMaxRecord
end if
Else
RowCount = iRecordCount
End If
End Property
Public Property Get ResultSet()
if iMaxRecord<>0 then
ssql= "SELECT top "& iMaxRecord
else
ssql= "SELECT "
end if
ResultSet = Null
If iRecordCount > 0 Then
Dim Rs,Cm
iPageCount = (iRecordCount + iPageSize - 1) \ iPageSize
If iPageIndex = -1 Then iPageIndex = Request.QueryString(sPageParm)
iPageIndex = CheckNum(iPageIndex,1,iPageCount)
Select Case sDatabase
Case "mssql"
Set Rs=server.CreateObject("Adodb.RecordSet")
Set Cm=Server.CreateObject("Adodb.Command")
Cm.CommandType = 4
Cm.ActiveConnection = oConn
Cm.CommandText="sp_Util_Page"
Cm.parameters(1) = sField
Cm.parameters(2) = sTable
Cm.parameters(3) = sCondition
Cm.parameters(4) = sOrderBy
Cm.parameters(5) = sPKey
Cm.parameters(6) = iPageIndex
Cm.parameters(7) = iPageSize
Cm.parameters(8) = iRecordCount
Cm.parameters(9) = ""
Rs.CursorLocation = 3
Rs.LockType = 1
Rs.Open Cm
Case "mysql"
Set Rs = oConn.Execute(ssql & " " & sField & " FROM " & sTable & " " & sCondition & " " & sOrderBy & " LIMIT " & (iPageIndex-1)*iPageSize & "," & iPageSize)
Case Else
Set Rs = Server.CreateObject ("Adodb.RecordSet")
Rs.Open ssql&" " & sField & " FROM " & sTable & " " & sCondition & " " & sOrderBy,oConn,1,1,&H0001
On Error Resume Next
'˴Ϊaccess¼ಢһҳֻһ¼Eofbugһҳʾ2=___=
If iPageIndex > 1 And iPageIndex = iPageCount And (iRecordCount Mod iPageSize = 1) Then
Rs.AbsolutePosition = (iPageIndex - 1) * iPageSize
Else
Rs.AbsolutePosition = (iPageIndex - 1) * iPageSize + 1
End If
End Select
If Not Rs.Eof Then ResultSet = Rs.GetRows(iPageSize)
Rs.close
Set Rs=Nothing
End If
End Property
Private Function CheckNum(ByVal s,ByVal min,ByVal max)
Dim i:i = 0
s = Left(Trim("" & s),32)
If IsNumeric(s) Then i = CDbl(s)
If (min>-1) And (i < min) Then i = min
If (max>-1) And (i > max) Then i = max
CheckNum = i
End Function
Public Function Nav()
With Pager
.PageSize = iPageSize
.RecordCount = iRecordCount
.PageParm = sPageParm
.NumericJump = iNumericJump
.Template ="
"& sTemplate&"
"
.FirstPage = sFirstPage
.PreviousPage = sPreviousPage
.NextPage = sNextPage
.LastPage = sLastPage
.NumericPage = sNumericPage
End With
Nav = Pager.Nav()
End Function
End Class
Class Cls_Pager
Private iPageIndex
Private iPageSize
Private iPageCount
Private iRecordCount
Private sPageUrl
Private sPageParm
Private sTemplate
Private sFirstPage
Private sPreviousPage
Private sNextPage
Private sLastPage
Private sNumericPage
Private iNumericJump
Private Sub Class_Initialize()
iPageIndex = -1
iPageSize = 10
iPageCount = 0
iRecordCount = 0
sPageUrl = ""
sPageParm = "p"
sTemplate = "
"
sFirstPage = "First"
sPreviousPage = "Previous"
sNextPage = "Next"
sLastPage = "Last"
sNumericPage = " {$PageNum} "
iNumericJump = 3
End Sub
Private Sub Class_Terminate()
End Sub
Public Property Let PageSize(ByVal i)
iPageSize = CheckNum(i,1,-1)
End Property
Public Property Let PageCount(ByVal i)
iPageCount = CheckNum(i,0,-1)
End Property
Public Property Let RecordCount(ByVal i)
iRecordCount = CheckNum(i,0,-1)
End Property
Public Property Let PageUrl(ByVal s)
sPageUrl = s
End Property
Public Property Let PageIndex(ByVal i)
iPageIndex = CheckNum(i,0,-1)
End Property
Public Property Let PageParm(ByVal s)
If Len(s)>0 Then sPageParm = s
End Property
Public Property Let Template(ByVal s)
If Len(s)>0 Then sTemplate = s
End Property
Public Property Let FirstPage(ByVal s)
sFirstPage = s
End Property
Public Property Let PreviousPage(ByVal s)
sPreviousPage = s
End Property
Public Property Let NextPage(ByVal s)
sNextPage = s
End Property
Public Property Let LastPage(ByVal s)
sLastPage = s
End Property
Public Property Let NumericPage(ByVal s)
sNumericPage = s
End Property
Public Property Let NumericJump(ByVal i)
iNumericJump = CheckNum(i,-1,-1)
End Property
Public Property Get Nav()
Dim v,x,i,minNumericPage,maxNumericPage,vNumericPage,vSelectPage,vInputPage
v = sTemplate
minNumericPage = 0
maxNumericPage = 0
vNumericPage = ""
If Len(sPageUrl) < 11 Then
sPageUrl = "?"
For Each x In Request.QueryString
If x <> sPageParm Then sPageUrl = sPageUrl & x & "=" & Request.QueryString(x) & "&"
Next
sPageUrl = sPageUrl & sPageParm &"={$PageNum}"
End If
vSelectPage = ""
v = Replace(v,"{$RecordCount}",iRecordCount)
v = Replace(v,"{$PageCount}",iPageCount)
v = Replace(v,"{$PageSize}",iPageSize)
v = Replace(v,"{$PageIndex}",iPageIndex)
v = Replace(v,"{$FirstPage}",sFirstPage)
v = Replace(v,"{$PreviousPage}",sPreviousPage)
v = Replace(v,"{$NextPage}",sNextPage)
v = Replace(v,"{$LastPage}",sLastPage)
v = Replace(v,"{$NumericPage}",vNumericPage)
v = Replace(v,"{$SelectPage}",vSelectPage)
v = Replace(v,"{$InputPage}",vInputPage)
Nav = v
End Property
Private Function CheckNum(ByVal s,ByVal min,ByVal max)
Dim i:i = 0
s = Left(Trim("" & s),32)
If IsNumeric(s) Then i = CDbl(s)
If (min>-1) And (i < min) Then i = min
If (max>-1) And (i > max) Then i = max
CheckNum = i
End Function
End Class
%>
Top Entry Ball Valve-China Bohai Valve Group Co., Ltd.