问题描述
SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:<Author,,Name>--Createdate:<CreateDate,,>--Description:分页存储过程--=============================================ALTERPROCEDURE[dbo].[GetRecordFromPage]@tbNamevarchar(255),--表名@fIdNamevarchar(255),--字段名@PageSizeint=10,--页尺寸@PageIndexint=1,--页码@SumCountintoutput,--返回记录总数@PageCountintoutput,--返回总页数@OrderTypebit=0,--设置排序类型@strWherevarchar(1000)=''--查询条件(注意不要加where)ASBEGINdeclare@strSQLvarchar(5000)--主SQL语句declare@tmpSQLvarchar(150)--临时SQL语句declare@strOrdervarchar(400)--排序类型SETNOCOUNTON;--设置排序类型if@OrderType!=0beginset@tmpSQL='<(selectmin'set@strOrder='orderby['+@fIdName+']desc'endelsebeginset@tmpSQL='>(selectmax'set@strOrder='orderby['+@fIdName+']asc'end--如果是查询第一页的就直接输出if@PageIndex=1beginif@strWhere!=''beginset@strSQL='selecttop'+str(@PageSize)+'*from['+@tbName+']where'+@strWhere+''+@strOrderendelsebeginset@strSQL='selecttop'+str(@PageSize)+'*from['+@tbName+']'+@strOrderendendelse--如果不是查询的不是第一页的数据beginif@strWhere!=''beginset@strSQL='selecttop'+str(@PageSize)+'*from['+@tbName+']where['+@fIdName+']'+@tmpSQL+'(['+@fIdName+'])from(selectTop'+str((@PageIndex-1)*@PageSize)+'['+@fIdName+']from['+@tbName+']where'+@strWhere+''+@strOrder+')astbTmp)and'+@strWhere+''+@strOrderendelsebeginset@strSQL='selecttop'+str(@PageSize)+'*from['+@tbName+']where['+@fIdName+']'+@tmpSQL+'(['+@fIdName+'])from(selectTop'+str((@PageIndex-1)*@PageSize)+'['+@fIdName+']from['+@tbName+']'+@strOrder+')astbTmp)'+@strOrderendendexec(@strSQL)ENDGOSETANSI_NULLSOFFGOSETQUOTED_IDENTIFIEROFFGO我想把数据项总数,和页总数都输出出来。但是就是实现不了,能帮忙把实现代码写处来吗?
解决方案
解决方案二:
该回复于2009-06-18 17:31:39被版主删除
解决方案三:
解决方案四:
顶一下...