当单击按钮时,我有一个应用程序,数据库表中的所有记录都被加载到 cxGrid 中(通过 tadquery / 数据源)。随着用户插入记录的数量会增加。
我只是想知道是否有什么我需要做或应该做的事情来确保加载所有记录不会花费太长时间。
这是单击按钮时我正在做的事情:
with query1 do
begin
Close;
SQL.Clear;
SQL.Text := 'SELECT * FROM DBA.Table1;
Open;
end;
建议将不胜感激。
当单击按钮时,我有一个应用程序,数据库表中的所有记录都被加载到 cxGrid 中(通过 tadquery / 数据源)。随着用户插入记录的数量会增加。
我只是想知道是否有什么我需要做或应该做的事情来确保加载所有记录不会花费太长时间。
这是单击按钮时我正在做的事情:
with query1 do
begin
Close;
SQL.Clear;
SQL.Text := 'SELECT * FROM DBA.Table1;
Open;
end;
建议将不胜感激。
显然,这不是一个特别严格的测试,但是在下面我的测试应用程序中,设置GridMode
为True
打开数据集并在大约 125 毫秒内填充网格(对于 7k 22 列行),而设置为False
.
procedure TForm1.Button1Click(Sender: TObject);
var
T1 : Integer;
begin
if qNames.Active then
qNames.Close;
T1 := GetTickCount;
cxGrid1DBTableView1.DataController.DataModeController.GridMode := CheckBox1.Checked;
qNames.Open;
Caption := IntToStr(qNames.RecordCount) + ':' + IntToStr(GetTickCount - T1) + ':' + IntToStr(qNames.FieldCount);
end;
除了我将 DataController 的 KeyFieldNames 设置为数据集的 PK 之外,cxGrid 中的所有内容都设置为默认值。