日期:2014-05-18  浏览次数:20466 次

关于查询后返回的问题。。
很少贴这么多东西问,但是实在是郁闷了,用空的前辈帮忙看看谢谢了,刚唯一的50分也问这个问题了,但是没有得到答案。。

set   ANSI_NULLS   ON
set   QUOTED_IDENTIFIER   ON
go


ALTER   PROCEDURE   [dbo].[cpage]   (
        @page_num   int,                                 --   当前页数
        @page_max   int,                                 --   每页显示条数
        @table   varchar(50),                         --   表名
        @id   varchar(20),                         --   ID字段
        @shows   varchar(800),                 --   显示列
        @sort   varchar(20),                         --   排序字段(推荐用ID)
        @where   varchar(800),                 --   查询条件不推荐用like   '%.. '
        @order   varchar(20),                         --   排序方式
        @record_count   int   OUTPUT,         --   记录总数
        @page_count   float   OUTPUT
)
As

DECLARE   @sql   nvarchar(4000),   @t_where   varchar(800),   @t_order   varchar(50),   @mod   int,   @top   int

IF   @where   Is   Null   Or   LTrim(RTrim(@where))   =   ' '   --   设置条件
        SET   @t_where   =   ' '
ELSE
        SET   @t_where   =   '   WHERE   '   +   LTrim(RTrim(@where))

IF   @order   =   'DESC '   --   设置排序
        SET   @t_order   =   'ASC '
Else
        SET   @t_order   =   'DESC '

SET   @sql   =   'SELECT   @record_count   =   COUNT(*)   FROM   '   +   @table   +   @t_where

EXEC   sp_executesql   @sql,   N '@record_count   int   OUTPUT ',   @record_count   OUTPUT   --   返回记录总数

SET   @page_count   =   @record_count   /   @page_max
SET   @mod   =   @record_count   -   CAst(@page_count   As   int)   *   @page_max
IF   @mod   >   0   SET   @page_count   =   @page_count   +   1

IF   @page_count   >   @page_num   Or   @mod   =   0   --   设置显示页数
        SET   @top   =   @page_max
ELSE
        SET   @top   =   @mod

SET   @sql   =   'SELECT   temp. '   +   @id   +   ',   data. '   +   Replace(@shows,   ', ',   ',   data. ')   + &