3天结贴! 二次查询 加 分页 怎么做效率比较高(记录很多)

ilcjeff 2004-05-12 01:24:20
3天结贴!
...全文
105 1 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CMIC 2004-05-12
数据库量大时同意使用存储过程分页,ACCESS也可以使用存储过程。
回复
ajex 2004-05-12
二楼已经说的很清楚了.推荐store procedure
回复
hkz2008 2004-05-12
学习,up!
回复
crodling 2004-05-12
如果在本页面增删数据呢,总记录数量不是要变化么,session只是第一次加载变化,而postback不变
回复
活靶子哥哥 2004-05-12
第一次页面加载后 把计算的总记录数存入变量 session或者 url参数
下次就不需要再计算总记录数了
回复
vzxq 2004-05-12
学习,帮你UP
回复
ilcjeff 2004-05-12
不用存储过程怎么实现?
回复
ilcjeff 2004-05-12
我用的ACCESS :)
回复
cuike519 2004-05-12
用存储过程查询分页!
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=193129
http://webdiyer.europe.webmatrixhosting.net/

下面是一个存储过程分页的存储过程(转贴)
CREATE proc page
@pagenum int
as
SET NOCOUNT ON /*-----这一句很重要哦:)),不然它只会认 insert #change......这个数据集:))*/
declare @sql nvarchar(500) --声明动态sql执行语句
declare @pagecount int --当前页数

--取得当前数据库的记录总数
declare @row_num int
begin
select @row_num=count(*) from cat_list

--创建临时表,作为数据过滤
create table #change (T_id int)

--判断当前页数
if @row_num>6 --大于页面显示记录数,则分页
begin
set @row_num=@pagenum*6

if @row_num=6
select top 6 * from cat_list
else
begin
set @row_num=(@pagenum-1)*6
set @pagecount=@row_num
set @sql=N''insert #change (T_id) select top ''+cast(@pagecount as char(100))+'' T_id from cat_list where T_id not in (select T_id from #change)''
exec sp_executesql @sql
select top 6 * from cat_list where T_id not in (select T_id from #change)
end
end
else --只现实全部的数据
select * from cat_list
end
GO
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-12 01:24
社区公告
暂无公告