您的位置:首页 > 其它

存储过程 实现表中数据分页显示

2011-10-25 21:02 375 查看
本文内同概要:用存储过程实现数据表分页显示

此文仅是一种算法实现,希望有兴趣的朋友可以多提点算法。。

源代码:

create proc table1

@i int,--每页显示的个数

@j int,--显示的页码

@table varchar(20),--哪张表

@tabid varchar(20)--表的ID

as

declare @sql varchar(500) --声明一个局部变量,来存储字符串的值

set @sql='declare @k int '

set @sql=@sql+' set @k=(select count(*) from '+@table+')'

set @sql=@sql+'select top '+str(@i)+' * from

(select top(@k-('+str(@j)+'-1)*'+str(@i)+') * from '+@table+' order by'+@tabid+'
Desc) a

--此处用的是拼接字符串的操作

order by a.'+@tabid+''

exec(@sql) --用exec结合字符串,将字符串装换成指令执行

--调用

exec table1 1,2,KC,Cid

//,第一个参数是每页显示多少行数据、

//第二个参数是显示的页码,

//第三个参数显示的是哪张表,

//第四个参数:要进行排序的字段名

--算法思路简单介绍:用top结合排序(先降序,再升序),用top抓取值来进行分页显示

--好处:每次我们只需传一些输入的 参数,就可以看到我们想要的数据。。利于代码的重用,不用每次都写存储过程

将操作进行封装,对于代码的重用有很大的意义。。。

在此希望各位博友用不同的算法,实现同样的效果(注意区别写的时候重点要放在在算法实现的那部分)

希望各位博友提供不同的算法。。。

当然上面的代码有很大的漏洞,例如我们传得数据超出了表中的数据 等等。。

所以我们传得时候小心一点,我们主要是探讨几种不同的算法,所以这些就不做太多的说明了。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: