一个较难的关于大数据量查询问题 ( 积分: 30 )

  • 主题发起人 主题发起人 tanglei038
  • 开始时间 开始时间
T

tanglei038

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库中有上十万条记录,我要的效果是: 一次显示固定的规定长度(比如20条),
点击一个按钮(下一页)再显示20条,点击另一个按钮(上一条)显示上一页的记录。
各位高手,我现在每多少分啦,就算帮帮小弟嘛。
我的结构是COM+, 所有对象都是无状态的。
 
数据库中有上十万条记录,我要的效果是: 一次显示固定的规定长度(比如20条),
点击一个按钮(下一页)再显示20条,点击另一个按钮(上一条)显示上一页的记录。
各位高手,我现在每多少分啦,就算帮帮小弟嘛。
我的结构是COM+, 所有对象都是无状态的。
 
在数据库中做分页显示(存储过程)就可以了。
 
类似Web页面的DataGrid分页显示,要在存储过程实现按页号和每页记录数取数据。在程序中记录当前页号就可以了。
 
可以利用TClientDateSet的数据包记录属性实现,PacketRecords=20,每按一下按钮(下一页),就调用方法:GetNextPacket,即可实现你要求的效果。赶快加分吧!
 
yx12006说的不错
 
参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3092024
 
可以在服务器创建一个读取数据的接口函数,在此函数里执行下列语句:
query.close;
query.sql.text:=<你的sql语句>;
query.open;
query.first;
query.moveby(<上一页读到的位置>);
<返回的数据集>:=datasetprovider.GetRecords(<返回的记录数>, <实际返回的记录数>, 1);
 
yx12006说的不错,delphi目录midas中有个例子的就样的,可能参考.这认为这是最简单的一种.
 
多人接受答案了。
 
后退
顶部