一,我数据库中对应有字段推荐人手机和被推荐人手机号,一个推荐人可以对应多个推荐人,被推荐人也可以推荐多人,我写了一个递归过程对其实现,把它们的对应关系显示在TREEVIEE中,但是应该是访问服务器数据库时需要很多的时间,所以程序一直都反映不过来。我想问一下怎么样可以减少时间。
下面是我写的一个过程,应该没有问题:
procedure GetDirectories(Tree:TTreeView; introducer:string; Item:TTreeNode);
var
SearchRec: TSearchRec;
ItemTemp: TTreeNode;
begin
Tree.Items.BeginUpdate;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Text:='select * from tagy_agency where introducer =:introducer and levelno=:level CONNECT BY PRIOR agencyId = fatherId';
form1.ADOQuery1.Parameters.ParamByName('introducer').value:=trim(introducer);
form1.ADOQuery1.Parameters.ParamByName('level').Value:=10;
if not form1.ADOQuery1.Active then form1.ADOQuery1.Open;
if form1.ADOQuery1.recordcount>0 then
begin
form1.ADOQuery1.First;
while not (form1.ADOQuery1.Eof) do
begin
Item := Tree.Items.AddChild(Item, form1.ADOQuery1.fieldbyname('agencyId').value);
ItemTemp := Item.Parent;
GetDirectories(Tree, introducer, Item);
Item := ItemTemp;
Tree.Items.AddChild(Item, form1.ADOQuery1.fieldbyname('agencyId').value);
form1.ADOQuery1.Next;
end;{loop end}
Tree.Items.EndUpdate;
end;二:我怎么样把上面的实现以生成一幅图片的形式显示出来。
下面是我写的一个过程,应该没有问题:
procedure GetDirectories(Tree:TTreeView; introducer:string; Item:TTreeNode);
var
SearchRec: TSearchRec;
ItemTemp: TTreeNode;
begin
Tree.Items.BeginUpdate;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Text:='select * from tagy_agency where introducer =:introducer and levelno=:level CONNECT BY PRIOR agencyId = fatherId';
form1.ADOQuery1.Parameters.ParamByName('introducer').value:=trim(introducer);
form1.ADOQuery1.Parameters.ParamByName('level').Value:=10;
if not form1.ADOQuery1.Active then form1.ADOQuery1.Open;
if form1.ADOQuery1.recordcount>0 then
begin
form1.ADOQuery1.First;
while not (form1.ADOQuery1.Eof) do
begin
Item := Tree.Items.AddChild(Item, form1.ADOQuery1.fieldbyname('agencyId').value);
ItemTemp := Item.Parent;
GetDirectories(Tree, introducer, Item);
Item := ItemTemp;
Tree.Items.AddChild(Item, form1.ADOQuery1.fieldbyname('agencyId').value);
form1.ADOQuery1.Next;
end;{loop end}
Tree.Items.EndUpdate;
end;二:我怎么样把上面的实现以生成一幅图片的形式显示出来。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货