一个很强大的分页代码。

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

' * 数据库转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