小猫统计中,如果数据量稍大,比如12万,显示速度明显降低。使用分页显示即可提高速度。
记一下代码,免得下次麻烦。
//首页
procedure TForm_main.btnFirstPageClick(Sender: TObject);
var
sql: string;
begin
pageNo := 1;
seCurPage.Value := pageNo;
sql := 'select * from ' + g_tableNameEn + ' rows ' + intToStr(numPerPg);
ZQueryData.close;
ZQueryData.SQL.Text := sql;
ZQueryData.Open;
controlsState;
end;
//上一页
procedure TForm_main.btnPrePageClick(Sender: TObject);
var
sql: string;
begin
if pageNo - 1 <= 0 then exit;
pageNo := pageNo - 1;
seCurPage.Value := pageNo;
firstRecNoOfCurPage := (pageNo - 1) * numPerPg + 1;
lastRecNoOfCurPage := firstRecNoOfCurPage + numPerPg - 1;
sql := 'select * from ' + g_tableNameEn + ' rows '+intToStr(firstRecNoOfCurPage) + ' to ' + intToStr(lastRecNoOfCurPage);
ZQueryData.close;
ZQueryData.SQL.Text := sql;
ZQueryData.Open;
controlsState;
end;
//下一页
procedure TForm_main.btnNextPageClick(Sender: TObject);
var
sql: string;
begin
if pageNo > recCount div numPerPg then exit;
pageNo := pageNo + 1;
seCurPage.Value := pageNo;
firstRecNoOfCurPage := (pageNo - 1) * numPerPg + 1;
if pageNo > recCount div numPerPg + 1 then
lastRecNoOfCurPage := recCount
else
lastRecNoOfCurPage := firstRecNoOfCurPage + numPerPg - 1;
sql := 'select * from ' + g_tableNameEn + ' rows '+intToStr(firstRecNoOfCurPage) + ' to ' + intToStr(lastRecNoOfCurPage);
ZQueryData.close;
ZQueryData.SQL.Text := sql;
ZQueryData.Open;
controlsState;
end;
//末页
procedure TForm_main.btnLastPageClick(Sender: TObject);
var
sql: string;
begin
pageNo := recCount div numPerPg + 1;
seCurPage.Value := pageNo;
firstRecNoOfCurPage := (pageNo - 1) * numPerPg + 1 ;
lastRecNoOfCurPage := recCount;
sql := 'select * from ' + g_tableNameEn + ' rows '+intToStr(firstRecNoOfCurPage) + ' to ' + intToStr(lastRecNoOfCurPage);
ZQueryData.close;
ZQueryData.SQL.Text := sql;
ZQueryData.Open;
controlsState;
end;