如题
是从视图中读取的数据,谢谢各位了
代码如下
rocedure Tydsk.DBGrid1CellClick(Column: TColumn);
begin
listbox1.Items.Clear;
with Adoquery2 do
begin
close;
sql.Clear;
sql.Add('select kfcode from yd_query where lxname='''+dbgrid1.SelectedField.DisplayText+''''); open;
end;
while not Adoquery2.Eof do
begin
listbox1.Items.Add(Adoquery2.FieldByName('kfcode').AsString);
Adoquery2.Next;
end;
end;
是从视图中读取的数据,谢谢各位了
代码如下
rocedure Tydsk.DBGrid1CellClick(Column: TColumn);
begin
listbox1.Items.Clear;
with Adoquery2 do
begin
close;
sql.Clear;
sql.Add('select kfcode from yd_query where lxname='''+dbgrid1.SelectedField.DisplayText+''''); open;
end;
while not Adoquery2.Eof do
begin
listbox1.Items.Add(Adoquery2.FieldByName('kfcode').AsString);
Adoquery2.Next;
end;
end;
还有就是BeginUpdate和EndUpdate(TStrings类的)
Adoquery2.First
listbox1.Items.Clear;
with Adoquery2 do
begin
close;
sql.Clear;
sql.Add('select kfcode from yd_query where lxname='''+dbgrid1.SelectedField.DisplayText+''''); open;
first;
while not Eof do
begin
listbox1.Items.Add(FieldByName('kfcode').AsString);
Next;
end; end;
end;
sql.Add('select kfcode from yd_query where lxname='''+dbgrid1.SelectedField.DisplayText+''''); open;
这两个步骤很慢,不知道怎么解决
当然了,毕竟是从硬盘中读取数据阿
你可以想一下别的办法补救,比方说加一个进度条
让客户知道进度就不会觉得慢了,5秒钟,无所谓的
while not Adoquery2.Eof do
begin
listbox1.Items.Add(Adoquery2.FieldByName('kfcode').AsString);
Adoquery2.Next;
end;
listbox1.Items.EndUpdate;