asp读取数据库输出json


Function GetTable(Table,Where,Order,OrderSort,curpage, pagesize,MiniJson)

'Author : nigou
'使用方法 : Response.Write GetTable(Table表名,Where条件,Order主键(必须),OrderSort(asc,desc),curpage当前页, pagesize每页条数,MiniJson是否输出为miniUI格式)
'
	dim i, j ,rs
	if OrderSort="" Then OrderSort="asc"
	if Where="" Then Where="asc"
	Set Rs=Server.CreateObject("adodb.recordset")

	if curpage>1 then
		TmpSql="select a.* from ( select top  " & (curpage) * pagesize & " * from " & Table & " where " & where  & " order by " & Order & " " & OrderSort & ") a left join ( select top " & (curpage-1) * pagesize  & " * from " & Table & "  where " & where  & " order by " & Order & " " & OrderSort & ") b on a." & Order & "=b." & Order & " where iif(b." & Order & ",'0','1')='1'"
	else
		TmpSql="select a.* from ( select top  " & (curpage) * pagesize & " * from " & Table & " where " & where  & " order by " & Order & " " & OrderSort & ") a "
	end if
	if pagesize=0 Then TmpSql = "select * from " & Table

		Rs.open TmpSql,conn,1,1
		RealSize=Rs.recordcount
		for i=0 to Rs.recordcount-1
			TmpJson= TmpJson & "{"
			for j=0 to Rs.fields.count-1
				TmpJson= TmpJson & """" &(Rs.fields(j).name) & """ : "				
				TmpJson= TmpJson & """" & Rs(j) & """"
				if j<Rs.fields.count-1 then TmpJson= TmpJson & " , "
			next
			TmpJson= TmpJson & " }" 
			if i<Rs.recordcount-1 then TmpJson= TmpJson & ","
			TmpJson= TmpJson & vbcrlf
			rs.movenext
		next
		
		Rs.close
	if MiniJson=1 Then
		CountSql="select count("& order &") from " & Table & " where " & where
		Rs.open CountSql,Conn,1,1
		Counts=Rs(0)
		Rs.Close
		GetTable=ToMiniUi(TmpJson,Counts)
	Else
		GetTable=toJson(TmpJson)
	end if
	Set Rs=nothing
	
End Function

function toJson(JsonStr)
	toJson="[" & vbcrlf & JsonStr & vbcrlf & "]"
end function

Function ToMiniUi(JsonStr,total) 
	ToMiniUI="{"
	ToMiniUI=ToMiniUI & """total"":"" " & total & """," & vbcrlf
	ToMiniUI=ToMiniUI & """data"": [" & JsonStr
	ToMiniUI=ToMiniUI & "]}"
End Function

编程技巧