注册 登录
编程论坛 Delphi论坛

Delphi中的递归函数是否有误,怎么是死循环

wangdayong 发布于 2006-10-23 17:26, 991 次点击
procedure TForm1.FindLeechDom(LeechDomname:String; Node:TTreeNode);
var
SQLStr:String;
Node1:TTreeNode;
begin
SQLStr:='Select * from BaseFlow where MES_ModelCode=:value ';
ADOFind.Close;
ADOFind.SQL.Clear;
ADOFind.SQL.Add(SQLStr);
ADOFind.Parameters.ParamByName('value').Value:=LeechDomname;
ADOFind.Open;
while not ADOFind.Eof do begin
Node1:=TreeView1.Items.AddChild(Node,ADOFind.fieldByname('MES_ModelCode').AsString) ;
FindLeechDom(ADOFind.fieldByname('MES_ModelCode').AsString,Node1);
ADOFind.Next;
end;
end;
4 回复
#2
wangdayong2006-10-23 17:28
各位老大帮忙,急需解决!
急需,急需!!!
#3
volte2006-10-24 18:48
procedure TForm1.FindLeechDom(LeechDomname:String; Node:TTreeNode);
var
SQLStr:String;
Node1:TTreeNode;
begin
SQLStr:='Select * from BaseFlow where MES_ModelCode=:value ';
ADOFind.Close;
ADOFind.SQL.Clear;
ADOFind.SQL.Add(SQLStr);
ADOFind.Parameters.ParamByName('value').Value:=LeechDomname;
ADOFind.Open;
while not ADOFind.Eof do
begin
Node1:=TreeView1.Items.AddChild(Node,ADOFind.fieldByname('MES_ModelCode').AsString) ;
FindLeechDom(ADOFind.fieldByname('MES_ModelCode').AsString,Node1);
ADOFind.Next;
end;
end;

写东西都自己不查一下程序。
Node在什么地方初始化了。程序能知道吗?
#4
ivanzeng2006-10-25 11:42
1。你查来查去都是同一笔记录,当然是死循环的了。
2。ADOFind控件应该是要动太创建的。
#5
volte2006-10-25 12:59

估计这个程序你自己都没想好就动手了

连谁是父结点,谁是子结点都没搞清楚!

1