Asp教程

通过asp实例结合结合ACCESS,MSSQL来更好的深入Asp学习 - 爬坡者

« 使用SQL存储过程要特别注意的问题-注意顺序读取SQL Server 存储过程的分页方案比拼 »

两个存储过程的比较


cREATE PROCEDURE [dbo].[PAGERDATA_P]
@sqlstr nvarchar(3500), --SQL字串
@curpage int,--第N頁
@pagesize int--每頁行數
AS
begin
--select @pagecount=3,@pagesize=3 ,@sqlstr='select * from news order by distribute_date desc, ID desc'

set nocount on
declare @P1 int,--P1是游标的id
@rowcount int, @pagecount int
SET @sqlstr = RTRIM(@sqlstr)
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
set @pagecount = ceiling(1.0*@rowcount/@pagesize)
if @curpage<=1
set @curpage =1
if @curpage>@pagecount
set @curpage=@pagecount
select @rowcount as Total, @pagecount as PageCount,@curpage as CurPage
set @curpage=(@curpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@curpage,@pagesize
exec sp_cursorclose @P1
end
GO


--**************************************************
--存储过程RhSplitPageData,返回相应的分页表的统计数据
--**************************************************


CREATE PROCEDURE [dbo].[RhSplitPageData]

@sqlstr nvarchar(3500), --SQL语句
@curpage int, --第n页
@pagesize int --每页行数
--@rowcount int out, --行数
--@pagecount int out --页数
AS
begin
set nocount on

--设置参数
declare @P1 int ,@rowcount int, @pagecount int

SET @sqlstr = RTRIM(@sqlstr)
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount out
set @pagecount = ceiling(1.0*@rowcount/@pagesize)
if @curpage<=1
set @curpage =1
if @curpage>@pagecount
set @curpage=@pagecount
select @rowcount as Total, @pagecount as PageCount,@curpage as CurPage --返回统计数据
set @curpage=(@curpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@curpage,@pagesize --返回查询页的数据
exec sp_cursorclose @P1
end
GO

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80710

Copyright 2007-2008 papozhe.com [asp教程] All Rights Reserved.
浙ICP备07030537号
免责申明:所有文章除特别声明,均来自网上,主要为学习用!内容仅供参考,版权归原作者。如侵犯您利益,请来信告知.
Email:papozhe$Gmail.com QQ:76336503