昨天帮朋友处理一个带置顶的分页页面。
数据库:Access
方法:在文章表中增加一个是否置顶字段:A_IsTop(Boolean),将A_IsTop和格式化为“0000000000”的字段组合在一块后再以倒序方式排序
SQL语句如下:
数据库:Access
方法:在文章表中增加一个是否置顶字段:A_IsTop(Boolean),将A_IsTop和格式化为“0000000000”的字段组合在一块后再以倒序方式排序
SQL语句如下:
Sub OpenData()
'On Error Resume Next
Conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(db)
If Err.Number<>0 Then
Response.Write "用户数据库连接失败!请联系管理员解决!"
Response.End()
End If
End Sub
Sub CloseConn()
Conn.Close
Set Conn=nothing
End Sub
Sub creatobj(obj) '建立recordset对象
set obj=server.CreateObject("adodb.recordset")
End sub
sub clearobj(obj)
if Lcase(typename(obj))="recordset" then
obj.close
set obj=nothing
end if
end sub
nPageSize=10 '每页显示条数
pageno=request("pageno")
If Not IsNumeric(PageNo) or isEmpty(PageNo) Then
PageNo=1
End If
if PageNo<1 Then PageNo=1
pageno=clng(pageno)
Call OpenDatabase() '打开数据库
Call CreatObj(rs) '建立游标
'统计文章总数
Sql="Select Count(*) As zs From Article"
rs.open sql,conn,1,1
rsCount=rs("zs")
rs.close
'计算总页数
PageAll=(rsCount-(rsCount mod nPageSize))/nPageSize
if (rsCount mod nPageSize)>0 then PageAll=PageAll+1
if PageAll=0 then PageAll=1
if Pageno>pageall then pageno=PageAll
'生成分页语句
Sql="Select Top "& nPageSize &" * From Article " & _
"Where (Cstr(abs(a_istop))+format(cstr(id),'0000000000'))<=(" & _
"Select Iif(IsNull(Min(n.ID)),0,Min(n.ID)) From (" & _
"Select Top "& (Cint(PageNo)-1)*nPageSize+1 &" cstr(abs(a_istop))+format(cstr(id),'0000000000') as ID From Article Order by cstr(abs(a_istop))+format(cstr(id),'0000000000') Desc" & _
") n" & _
") Order By cstr(abs(a_istop))+format(cstr(id),'0000000000') Desc"
rs.open sql,conn,1,1
'输出查询到的文章列表
Call ClearObj(rs) '清除rs游标
Call CloseConn() '关闭数据库
789

被折叠的 条评论
为什么被折叠?



