delphi 数据分页有关问题
delphi 数据分页问题
老问题了 不知道****现在还有大侠解决否
可能delphi老了吧。 还是用的人少了 近几年这里提的问题 都没人回复
也没找到完美答案
但是 说句实在的 写应用程序 还是delphi方便。
ok 切入正题 闲话好说 还望大家能给予帮忙解决
delphi要实现数据分页,
本人要求是 在数据表滚动的时候 实现隐式的分页
也就是说 假如数据有1w条
打开加载到界面,默认先加载100条,然后用户在滚动网格的时候,当滚动至下方时,系统再再加载下一页的100条
以此类推,往后面累加
当然 这里要用到数据库的存储过程来控制
存储过程倒是简单 已经设计好
问题是我们程序如何控制? delphi的数据集要做成可以陆续累加进去的
不知道怎么实现? 还请指教
------解决思路----------------------
unidac的组件uniquery有两个个属性就可以轻松实现。但是这样做,你必须要写一条语句查出总记录来赋值给label才知道总共有多少记录哦,而且不能完美使用cxgrid、dbgrideh自带的过滤功能(因为刚开始只能100条数据,你是不能过滤100以后的符合条件的记录的)
FetchRows可以设定一次获取记录的行数
uniquery 和 unitable 的 SpecificOptions 属性,需要设置 FetchAll=False才能使 FetchRows 的设置生效,而默认情况下, oracle 是设置Oracle.FetchAll=False;
而对去 sql server 和 mysql 等,却是设置的 XXX.FetchAll=True


------解决思路----------------------
使用DataSet数据集,批量读入DBGrid即可。
------解决思路----------------------
ClientDataSet1.PacketRecords
------解决思路----------------------
yes,clientdataset有个属性,可以设置每次加载记录的数量,分批次加载,完全符合你的要求
另一种方法就是自己手动实现,使用stringgrid,每次滚到表格底部时,手动加载下一批数据到表格中
老问题了 不知道****现在还有大侠解决否
可能delphi老了吧。 还是用的人少了 近几年这里提的问题 都没人回复
也没找到完美答案
但是 说句实在的 写应用程序 还是delphi方便。
ok 切入正题 闲话好说 还望大家能给予帮忙解决
delphi要实现数据分页,
本人要求是 在数据表滚动的时候 实现隐式的分页
也就是说 假如数据有1w条
打开加载到界面,默认先加载100条,然后用户在滚动网格的时候,当滚动至下方时,系统再再加载下一页的100条
以此类推,往后面累加
当然 这里要用到数据库的存储过程来控制
存储过程倒是简单 已经设计好
问题是我们程序如何控制? delphi的数据集要做成可以陆续累加进去的
不知道怎么实现? 还请指教
------解决思路----------------------
unidac的组件uniquery有两个个属性就可以轻松实现。但是这样做,你必须要写一条语句查出总记录来赋值给label才知道总共有多少记录哦,而且不能完美使用cxgrid、dbgrideh自带的过滤功能(因为刚开始只能100条数据,你是不能过滤100以后的符合条件的记录的)
FetchRows可以设定一次获取记录的行数
uniquery 和 unitable 的 SpecificOptions 属性,需要设置 FetchAll=False才能使 FetchRows 的设置生效,而默认情况下, oracle 是设置Oracle.FetchAll=False;
而对去 sql server 和 mysql 等,却是设置的 XXX.FetchAll=True
------解决思路----------------------
使用DataSet数据集,批量读入DBGrid即可。
------解决思路----------------------
ClientDataSet1.PacketRecords
------解决思路----------------------
yes,clientdataset有个属性,可以设置每次加载记录的数量,分批次加载,完全符合你的要求
另一种方法就是自己手动实现,使用stringgrid,每次滚到表格底部时,手动加载下一批数据到表格中