我需要查询access2000的一个表,但受条件所限我只能用delphi5和tquary组件查询(不能用ado组件),但查的这条sql语句将会使我的这个access2000库的数据表返回上千条记录,这很耗费资源,所以我想问问各位如何设置或查询可以一次返回一定数量的记录(比如一次查到1000条,但我每次只需要20条,如何让数据集只进行一次性查询全部记录,但每次只返回20条,当需要时再调入下20条,依此类推。)在此先送上100分不够可再加,先谢了。
调试欢乐多
select top 20 from table
是取表的前20条记录;你可以试试有没有另外的函数可以取下面20条;
ado你不能用,delphi又没有datasnap技术就是说dbexpress也不能用,看来你只能用dbe了,dbe好像又没有ADOConnetioned = false这样的属性,看来你只能用sql语句了。up
一个存全部记录,另一个显示要求的20条数据。
这样做估计比dbgrid控件效率高,且查询下一个20条快多了
2、设置一个全局变量cou表示每块的纪录数。
3、设置一个全局变量ci表示当前的块。从1开始计数
4、编写一个读取块的函数。readci(i:integer);//i表示块数
procedure readcou(i:integer);
var i:integer;
begin
query1.moveby ((cou*(ci-1))+1);
for i:=1 to cou do begin
{
你的处理过程.......
}
query1.next;
end;
end;
写完了,快给分!