R
Rocklee
Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码如下 :
Procedure RefreshData; //重新打开数据集
begin
adodataset.sql.add('select trx_trxdt,trx_namecd,trx_nameno,trx_work
from paytrx where trx_trxdt>=''08/01/2001' and trx_trxdt<=''09/01/2001''');
adodataset.open;
adodataset.recordset.pagesize=15; //一页的记录数
f_Pages:=adodataset.recordset.pagecount; //结果有多少页
DoShowData(1);
end;
Procedure DoNextPage; //显示下一页
begin
Inc(PageIndex);
if PageIndex>adbquery.recordset.PageCount then
PageIndex:=adbquery.recordset.PageCount;
DoShowData(PageIndex);
end;
Procedure DoPrePage; //显示上一页
begin
Dec(PageIndex);
if PageIndex<1 then
PageIndex:=1;
DoShowData(PageIndex);
end;
procedure DoShowData(pgIdx:integer); //显示指定页数的内容
var i:integer;
begin
with adbdataset do begin
adbdataset.recordset.absolutpage:=pgIdx;
for i:=1 to recordset.pagesize do begin
memo1.lines.add(fieldbyname('trx_trxdt').asstring+ ' '+
fieldbyname('trx_namecd').asstring+' '+ ....);
next;
if adbdataset.eof then break;
end;
end;
end;
代码完全无错,运行也没有问题,只是效率不如我想像的快,一样让我等,好像和没有用分页差不多。
各位想用分页技术的大哥们无非也想获得高的效率(减少网络流量)。
但好像从上面的代码中看不出效果来。
如果我将 Recordset.size=5这句放在Open之前,则会死得很难看。
还有一个游标类型(可以选在Server/Client),我改过,都无什么差别。
希望在这方面有所发现的大哥们谈论谈论。
我相信很多同行都会遇到和我一样问题,就是当用户按条件拉回数据并且进行修改时,
假如拉回来的数据有一万或数十万的时候,现上面所说的尴尬问题.
yysun老师,请指教。
(另:多谢yysun老师给我邮来msxml)
Procedure RefreshData; //重新打开数据集
begin
adodataset.sql.add('select trx_trxdt,trx_namecd,trx_nameno,trx_work
from paytrx where trx_trxdt>=''08/01/2001' and trx_trxdt<=''09/01/2001''');
adodataset.open;
adodataset.recordset.pagesize=15; //一页的记录数
f_Pages:=adodataset.recordset.pagecount; //结果有多少页
DoShowData(1);
end;
Procedure DoNextPage; //显示下一页
begin
Inc(PageIndex);
if PageIndex>adbquery.recordset.PageCount then
PageIndex:=adbquery.recordset.PageCount;
DoShowData(PageIndex);
end;
Procedure DoPrePage; //显示上一页
begin
Dec(PageIndex);
if PageIndex<1 then
PageIndex:=1;
DoShowData(PageIndex);
end;
procedure DoShowData(pgIdx:integer); //显示指定页数的内容
var i:integer;
begin
with adbdataset do begin
adbdataset.recordset.absolutpage:=pgIdx;
for i:=1 to recordset.pagesize do begin
memo1.lines.add(fieldbyname('trx_trxdt').asstring+ ' '+
fieldbyname('trx_namecd').asstring+' '+ ....);
next;
if adbdataset.eof then break;
end;
end;
end;
代码完全无错,运行也没有问题,只是效率不如我想像的快,一样让我等,好像和没有用分页差不多。
各位想用分页技术的大哥们无非也想获得高的效率(减少网络流量)。
但好像从上面的代码中看不出效果来。
如果我将 Recordset.size=5这句放在Open之前,则会死得很难看。
还有一个游标类型(可以选在Server/Client),我改过,都无什么差别。
希望在这方面有所发现的大哥们谈论谈论。
我相信很多同行都会遇到和我一样问题,就是当用户按条件拉回数据并且进行修改时,
假如拉回来的数据有一万或数十万的时候,现上面所说的尴尬问题.
yysun老师,请指教。
(另:多谢yysun老师给我邮来msxml)