用的sql server的API,效率上就不知道了。有兴趣的朋友可以帮忙测试一下,顺便告诉我一下,谢谢~
命名上本应用sp_,但sql server的API都是sp_打头的,据说这个前缀会先在API里面寻找,性能下降。想来想去也不愿意多打字母,就用xp_了。该存储过程可以配合昨天发的数据库访问类使用。
CREATE
PROCEDURE
dbo.xp_GetPage
(
@sql varchar ( 1000 ),
@page int = 1 ,
@pageSize int = 20 ,
@needCount bit = 1
)
AS
SET NOCOUNT ON
DECLARE @P1 int -- P1是游标的id
SET @page = (@page - 1 ) * @pagesize + 1
EXEC sp_cursoropen @P1 output,@sql
EXEC sp_cursorfetch @P1, 16 , @page, @pagesize
EXEC sp_cursorclose @P1
-- 上面的就够了,下面的代码是为了统计总记录条数
select @RowCount
GO
(
@sql varchar ( 1000 ),
@page int = 1 ,
@pageSize int = 20 ,
@needCount bit = 1
)
AS
SET NOCOUNT ON
DECLARE @P1 int -- P1是游标的id
SET @page = (@page - 1 ) * @pagesize + 1
EXEC sp_cursoropen @P1 output,@sql
EXEC sp_cursorfetch @P1, 16 , @page, @pagesize
EXEC sp_cursorclose @P1
-- 上面的就够了,下面的代码是为了统计总记录条数
select @RowCount
GO
欢迎批评、指正、讨论。