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这个函数呢?
我都看不懂这段程序是什么意思?有没有高手解释一下??
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这个函数呢?
我都看不懂这段程序是什么意思?有没有高手解释一下??
不过这样递归不好,
应该一次把数据取出来,
对本地DataSet遍历进行递归
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;