主要代码 set rowcount 30 select * from (select top 30 * from (select top 30 * from table order by id asc) z order by z.id desc) zz order by id asc 可以在任何程序里扩展 大家试试看。需要源码的找我。 程序是在asp 里测试的。已测试通过。 速度翻页
主要代码' * 数据库转json 分页公用类库 ' * EMAIL:wyonli@gmail.com QQ:82366788 $ ' * $Author: Cason $ ' * $Id: yl_clsjson.asp 6481 2011-11-26 00:21:46 Cason $ property get order_name() dim o_sql,o_colum,olen,o_pai,i dim left_sql,right_sql o_sql = Cason_sql olen = instr(o_sql,"order") left_sql = left(o_sql,olen-1) right_sql = trim(mid(o_sql,olen)) if olen = 0 then response.write "请设定排序方式!" response.end end if o_sql = split(right_sql," ") for i = 0 to ubound(o_sql) if o_sql(i) = "by" then if i>1 then o_sql(1) = "by" o_sql(i) = "" end if end if if i>2 and o_sql(2) = "" and o_sql(i) <> "" then o_sql(2) = o_sql(i) o_sql(i) = "" end if if o_sql(i) = "asc" or o_sql(i) = "desc" then if i >3 then o_sql(3) = o_sql(i) o_pai = " " & o_sql(i) o_sql(i) = "" exit for end if end if next right_sql = join(o_sql) if o_pai = "" then o_pai = " asc" right_sql = replace(right_sql,o_sql(2),o_sql(2) & " asc") end if cason_sql = left_sql & right_sql order_name = o_sql(2) & o_pai end property property get th(ByVal str_val) if instr(str_val,"desc") >0 then th = replace(str_val,"desc","asc") else th = replace(str_val,"asc","desc") end if end property '================================================================ ' ResultSet 返回分页后的记录集 '================================================================ public Property Get ResultSet() dim Cason_Rs,col_name dim top_sql,top_Count,select_sql dim set_sql col_name = order_name if int(Cason_CurrPage) = 1 then top_sql = " top " & Cason_PageSize & " " top_Count = 0 else top_sql = " top " & (Cason_CurrPage) * Cason_PageSize & " " top_Count = (Cason_CurrPage - 1) * Cason_PageSize end if set_sql = "select" & top_sql & trim(mid(Cason_sql,7)) select_sql = "set rowcount " & Cason_PageSize & ";select * from (select top " & Cason_PageSize & " * from (" & set_sql & ") z order by " & th(col_name) & " ) zz order by zz." & col_name set Cason_Rs = yl.GetRs(select_sql,1,1) if int(Cason_CurrPage)>Cason_Rs.pagecount then Cason_CurrPage = Cason_Rs.pagecount end if Cason_Rs.PageSize = Cason_PageSize Cason_JsonHtml = ",""iRecCount"":""" & num_rows & """" response.write toJSON("""info""",Cason_Rs) End Property