******************关于TREEVIEW的显示问题
各位:有一问题请教,因为我的数据表里的数据太多(总20000)条记录,想用Treeview显示。我使用下面的函数:
procedure TForm_RyJbqk.ReadNode(FNode: TTreeNode; FSJBM: string);
var
MySQL: string;
MyNode: TTreeNode;
MyRecord: PWARMRecord;
ADOQNode: TADOQuery;
begin
MySQL := 'SELECT * FROM TBM WHERE SJBM='''+FSJBM+''' ORDER BY XSSX';
ADOQNode := TADOQuery.Create(Self);
ADOQNode.Connection := DM.ADOConn;
with ADOQNode do
begin
Close;
SQL.Clear;
SQL.Text := MySQL;
Open;
while not eof do
begin
new(MyRecord);
MyRecord.bmid := trim(FieldByName('BMID').AsString);
MyRecord.bmdm := trim(FieldByName('BMDM').AsString);
MyRecord.bmmc := trim(FieldByName('BMMC').AsString);
MyNode := TreeVBm.Items.AddChildObject(FNode,MyRecord.bmmc,MyRecord);
if FieldByName('Code').AsString = 'UN' then
begin
MyNode.ImageIndex := 0;
MyNode.SelectedIndex := 0;
end
else
begin
MyNode.ImageIndex := 1;
MyNode.SelectedIndex := 2;
end;
ReadNode(MyNode,MyRecord.bmdm);
Next;
end;
end;
end;
可是FROM读取的时候太慢,大概需要10多分钟,谁有更好的方法,请提供一个,谢谢!