c/s可以作分页吗? 比如在dbgrid中,“上10条”,“下10条”,这样显示数据。boss这么要求,说是害怕数据量大了,一次显示数据太多会影响性能。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/2365/2365596.xml?temp=.5068781交流--查询第X页,每页Y条记录邹建 俺使用的是oracle数据库,而且这样的问题应该就在delphi里面处理吧 环境:oracle8i+delphi6(ADO) c/s 两层 发一条分叶语句给你参考一下:意思是返回第100-200 之间的记录。select * from (select table.*, rownum ron from table where rownum < 200) where ron > 100建议分叶中, 每叶的数量在500-1000 之间, 否则缺乏效率。 : txlicenhe(马可) 提供一贴子不错在Oracle里可以rownum来控制取多少行 分页是最easy的事情,ado本身就提供分页处理,你去csdn查找我的经验帖子:http://expert.csdn.net/Expert/topic/2050/2050427.xml?temp=.2559168---------------------该帖子背景为显示大数据集,目前我以及成功做到1000,000(100万),反应速度也就是生成临时表的时间+提取当前记录集25行左右(每页),在加了索引的临时表提取当前记录集非常快,基本不需要考虑。如果你的表本身带id,那么连生成临时表都不需要。 假如DBGrid和DataSource连接,DataSource和ADODataSet1连接。 ADODataSet1.Open; ADODataSet1.Recordset.PageSize := 10; ADODataSet1.Recordset.AbsolutePosition := 1;第一页 ADODataSet1.Recordset.PageSize := 10; ADODataSet1.Recordset.AbsolutePosition := 11;第二页TADOQuery也是一样的 可以分页显示,只要设置clientdataset的packetrecords就可以了,想传几个就传几个还要把fetchondemand设为false; 我不同意楼上两位的说法, 使用pagesize来控制的只有在多层次应用系统中才能实现, 而且有个没有办法的缺陷就是会使本来可以成为无状态的应用服务器存储状态信息。 老大,DBGrid本来就是分页的,用CDS吧;_____________________________________________________________________暮春三月,羊欢草长,天寒地冻,问谁饲狼?人心怜羊,狼心独怆,天心难测,世情如霜……{言有尽而意无穷,余意尽在不言中……} 设置PageSize还是一下子把所有数据都提取出来的吧?这样效率能高吗?表里面的纪录可是30万笔以上的 读取xml文件内容的问题。 关于dbgrideh控件的使用问题 国庆散分,人就少 300 分求 内存表 kbmMemTable 问题 ADOconnection 问题! active form 做OCX文件的问题 在做Rave報表時,為什麼只顯示5個字段,而數據源中有好多呀???? 急救!!! 窗体句柄 在DBgrid.ondbclick中,如何得到双击的cell的行和列。 各位前辈:问一个问题,在API中,怎样在程序中取出本地机的IP地址,有没有一个函数实现此功能. 为什么TQuery不能修改字段值 请大家帮我起个名吧。哈哈
交流--查询第X页,每页Y条记录
邹建
select * from (select table.*, rownum ron from table where rownum < 200) where ron > 100建议分叶中, 每叶的数量在500-1000 之间, 否则缺乏效率。
在Oracle里可以rownum来控制取多少行
http://expert.csdn.net/Expert/topic/2050/2050427.xml?temp=.2559168
---------------------
该帖子背景为显示大数据集,目前我以及成功做到1000,000(100万),反应速度也就是生成临时表的时间+提取当前记录集25行左右(每页),在加了索引的临时表提取当前记录集非常快,基本不需要考虑。如果你的表本身带id,那么连生成临时表都不需要。
ADODataSet1.Open;
ADODataSet1.Recordset.PageSize := 10;
ADODataSet1.Recordset.AbsolutePosition := 1;
第一页
ADODataSet1.Recordset.PageSize := 10;
ADODataSet1.Recordset.AbsolutePosition := 11;
第二页TADOQuery也是一样的
还要把fetchondemand设为false;
霜……{言有尽而意无穷,余意尽在不言中……}
还是一下子把所有数据都提取出来的吧?这样效率能高吗?
表里面的纪录可是30万笔以上的