Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1257630
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-11-18 14:50:22



procedure   TForm1.FindLeechDom(Leechdomname:   String;node:   TTreeNode);  
  var  
      temp:   TQuery;  
      node1:   TTreeNode;  
  begin  
      Try  
          temp   :=   TQuery.Create(Self);  
          temp.DatabaseName   :=   ExtractFilePath(Application.ExeName);  
          With   temp   do  
          begin  
              Close;  
              SQL.Clear;  
              SQL.Add('select   *   from   leechdom.db   where   上级编码   =   :Value');  
              ParamByName('value').AsString   :=   Leechdomname;  
              Open;  
          end;  
          while   Not   Temp.Eof   do  
          begin  
              node1   :=   TreeView1.Items.AddChild(node,temp.FieldByName('药品类别').AsString);  
              FindLeechDom(temp.FieldByName('药品类别').AsString,node1);  
              temp.Next;  
          end;  
      Finally  
          temp.Free;  
      end;  
  end;  
   
   
  为什么在FindLeechDom函数的声明里还能用FindLeechDom这个函数呢?  
  我都看不懂这段程序是什么意思?有没有高手解释一下??  
 

递归调用

谁能给我解释一下啊??  
   
  谢谢了

很明显递归调用

解释一下,这个程序好吗??  
   
  看不懂。

递归

。。。递归调用。。要看基础。

这是一个递归函数,是将数据库中的药品项目全部罗列出来了!  
  例如:1、外科类-分5种药,每种还可以再分N种,依次分下去。层次是不固定的,但是每个项目都有一个对应的父项目。最顶层的没有父项目

连递归都不懂,还做程序,趁早改行

递归  
   
   
  不过这样递归不好,  
  应该一次把数据取出来,  
  对本地DataSet遍历进行递归

procedure   TForm1.FindLeechDom(Leechdomname:   String;node:   TTreeNode);  
  var  
      temp:   TQuery;  
      node1:   TTreeNode;  
  begin  
      Try  
          temp   :=   TQuery.Create(Self);  
          temp.DatabaseName   :=   ExtractFilePath(Application.ExeName);  
          With   temp   do  
          begin  
              Close;  
              SQL.Clear;  
              SQL.Add('select   *   from   leechdom.db   where   上级编码   =   :Value');  
              ParamByName('value').AsString   :=   Leechdomname;  
              Open;  
          end;  
          while   Not   Temp.Eof   do  
          begin  
              node1   :=   TreeView1.Items.AddChild(node,temp.FieldByName('药品类别').AsString);  
              FindLeechDom(temp.FieldByName('药品类别').AsString,node1);   //添加当前node1的子节点  
              temp.Next;  
          end;  
      Finally  
          temp.Free;  
      end;  
  end;



[新闻]Google iPhone语音识别程序已经上线
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(352) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~