我想读取数据库中大量的数据(100000条以上),我想用TAdoQuery的MaxRecords属性来做,分多次来读取数据,但是没有成功。希望得到大家的帮助。谢了。
我的做法:
TAdoQuery.MaxRecords := 200; query.close;
query.sql.clear;
query.sql.add('select * from zqhb order by userms');
query.open;
query.first;
while not query.eof do
begin
memo1.lines.add(query.fieldbyname('userms').asstring));
query.next;
end;
我的做法:
TAdoQuery.MaxRecords := 200; query.close;
query.sql.clear;
query.sql.add('select * from zqhb order by userms');
query.open;
query.first;
while not query.eof do
begin
memo1.lines.add(query.fieldbyname('userms').asstring));
query.next;
end;
最前100条.select top 100 * from table
order by bh desc
最后100条select top 100 * from table
where bh>100 and bh<200 //分页标记 取100-200条
这不叫ADO的分页技术吧
明显是用语言去解决了一个原则问题
——虽然他可能是对的
其次,可以利用StringGrid用翻页来显示数据,比如“上一页”“下一页”
不使用DBGrid的滚动条来拖动显示下条数据。每页可以设定显示的记录大小
如:一页50显示条记录,下一页显示51-100条记录.
ADOQuery1.Recordset.PageSize:=50;//页大小
ADOQuery1.Recordset.AbsolutePage:=1;//第一页
李维《ADO/COM+/MTS>>那本书说的比较多.
ADOQuery1.Recordset.CacheSize:=pagesize;
ADOQuery1.Recordset.AbsolutePage:=1;
ADOQuery1的属性: clUseClient ctDynamic