1
一、mssql的实现:
2
/*----------------------------------------------------------------------------------
3
* description: 数据分页存储过程
4
* author: LiLF
5
* date: 2009-9-25
6
---------------------------------------------------------------------------------*/
7![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
ALTER procedure [dbo].[ExecSqlGetOnePage]
9
@sqlstr varchar(8000),
10
@currentpage int,
11
@pagesize int
12
as
13
set nocount on
14
declare @sumPageCount int
15
declare @P1 int,
16
@rowcount int
17
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
18
set @sumPageCount =ceiling(1.0*@rowcount/@pagesize)
19
select @sumPageCount as 总页数
20
select @rowcount as 记录总数
21![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
if (@currentpage>@sumPageCount)
23
set @currentpage = @sumPageCount
24
if (@currentpage < 1)
25
set @currentpage = 1
26![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
set @currentpage=(@currentpage-1)*@pagesize+1
28
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
29
exec sp_cursorclose @P1
30![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
二、mysql的实现:
33
/*----------------------------------------------------------------------------------
34
* description: 数据分页存储过程
35
* author: LiLF
36
* date: 2009-9-25
37
---------------------------------------------------------------------------------*/
38
#===drop procedure===============================
39
DROP PROCEDURE IF EXISTS ExecSqlGetOnePage;
40
#===create procedure========================
41
CREATE DEFINER=`root`@`localhost` PROCEDURE `ExecSqlGetOnePage`(
42
/*query string*/
43
$sqlstr varchar(8000),
44
/*Page index*/
45
$pageIndex int,
46
/*Page Size*/
47
$pageSize int
48
)
49
BEGIN
50![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
DECLARE $sumPageCount int;
52
#===return a empty table======
57
58
set @rowcount=0;
59
set @sqlcounts=concat('select COUNT(*) into @rowcount from (',$sqlstr,') as a');
60
PREPARE stmt1 FROM @sqlcounts;
61
EXECUTE stmt1;
62
DEALLOCATE PREPARE stmt1;
63
64
set $sumPageCount=ceiling(1.0*@rowcount/$pagesize);
65
#====return total pages======
66
select $sumPageCount as 'totalPages';
67
#====return total records=====
68
select @rowcount as 'totalRows';
69![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
70
if ($pageIndex>$sumPageCount) THEN
71
set $pageIndex = $sumPageCount;
72
end if;
73
if ($pageIndex < 1) then
74
set $pageIndex = 1;
75
end if;
76
#====return current page records=====
77
set @strSQL=concat($sqlstr,' LIMIT ',($pageIndex-1)*$pageSize,',',$pageSize);
78
PREPARE stmt1 FROM @strSQL;
79
EXECUTE stmt1;
80
DEALLOCATE PREPARE stmt1;
81
END;
82
#======invork procedure===================
83
call ExecSqlGetOnePage('select * from system_framework',3,5);
84![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
84
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)