如何对DataSet数据集进行分页读取数据
比如:DataSet从数据库读取2000条记录,前台界面DBGrid每页20条分页显示这2000条记录。这样的功能如何实现啊,兄弟们帮帮忙啊! 问题点数:100、回复次数:9Top
1 楼exinke(新克)回复于 2005-10-27 18:44:07 得分 0
这个在网页中有用,在程序界面中有何用呢?
顶 , 小弟也想知道.Top
2 楼konhon(优华)回复于 2005-10-27 19:47:39 得分 10
ADODataSet的CacheSizeTop
3 楼hfyang9095(嘿嘿哈)回复于 2005-10-27 20:14:53 得分 0
To konhon(优华) :
能详细说说吗,最好能有个例子,CacheSize的用法到底是怎样实现的?他是限制取2000条数据,还是限制DBgrid每次取20条记录啊Top
4 楼pilicat(Delphi迷)回复于 2005-10-27 21:34:03 得分 20
请参阅:
http://tech.sina.com.cn/c/2001-07-31/4790.html
---------------------------------------------------
http://kmok.cnTop
5 楼xiaocuo_zrf(小错——淫雄所贱略同)回复于 2005-10-28 09:25:27 得分 45
那还不如用ClientDataSet的 ds1.GetNextPacket呢,Top
6 楼huangmai(黄麦)回复于 2005-10-28 11:57:16 得分 15
先取得总记录条数 ,这里用 AllRecCount
NeedSelCount := (AllRecCount div 20)
if NeedSelCount = 0 then //那么就是 总记录小于20咯。
begin
//直接select 显示
end
else
begin
For 循环变量 := 0 to NeedSelCount
select Top 20 * from
(
select * from 表名
where 条件
) as 查询结果假名
where 主键<(select min(主键) from (select top '+inttostr(循环变量*20)+' 主键 from
(
select * from 表名
where 条件
) as 查询结果假名
order by 主键 desc
) as 查询结果假名2
) order by 主键 desc
end;
你看看Top
7 楼konhon(优华)回复于 2005-10-28 16:58:31 得分 10
設置ADODataSet的CacheSize:=100
一次只取100條Top
8 楼hfyang9095(嘿嘿哈)回复于 2005-10-28 17:28:39 得分 0
xiaocuo_zrf(女巫手上的猫) 可以实现,其他的有点复杂了,呵呵
结贴Top
9 楼zgengle(什么都不会)回复于 2006-02-20 12:22:53 得分 0
markTop




