dTemp的內容是這樣的
fathergoods  fathergoodsname  childgoods childgoodsname number childtype
  ABC         abcname             A01        a01name      1      半成品
  ABC         abcname             B01        b01name      1      半成品
  ABC         abcname             C01        c01name      1      半成品
  A01         a01name             D01        d01name      1      原材料Procedure Tf_main.CodeRecursion(parent:Ttreenode;GoodsCode:String);
var
   Dataset:TADOquery;
   Node:Ttreenode;
begin
   dTemp.Filtered:=False;
   dTemp.Filter:='FatherGoods='+QuotedStr(GoodsCode);
   dTemp.Filtered:=True;
   if dTemp.RecordCount=0 then exit;
   DataSet:=TADOquery.Create(Application);
   Dataset.Clone(dTemp);
   Dataset.First;
   while not Dataset.Eof do begin
      Node:=Treeview1.Items.Add(Parent,
            Dataset.fieldbyname('ChildGoodsName').AsString);
      if (Dataset.FieldByName('childtype').AsString='半成品') then
             CodeRecursion(Node,Dataset.fieldByName('ChildGoods').AsString);
      Dataset.Next;
   end; //while
   Dataset.Free;
end;要按照dtemp的內容﹐寫到treeview1呀﹐現在出現死循環啦