我是对数据表里的一个字段判断来动态生成treeview节点的,如字段facctid的值为001则为第一节点,00101的为第二节点,0010101为第三节点,001010101为第三节点。但是这样下来太慢了,是否不用这么多adoqurey也可以实现呢?
------------------------------
begin
    node11:=TreeView1.Items.Addchild(Node1,lx[idm1.ADOQLanbase1.close;
    ii:=inttostr(i);
    dm1.ADOQLanbase1.sql.text:='select facctid,facctname from zwacct where facctid like '''+ii+'__'''; //i_ _
    dm1.ADOQLanbase1.open;
    //dm1.ADOQLanbase1.first;
    while not dm1.ADOQLanbase1.eof do
    begin
       facctid1:=dm1.ADOQLanbase1.fieldbyname('facctid').AsString;
       node111:=TreeView1.Items.Addchild(Node11,dm1.ADOQLanbase1.FieldByName('facctname').AsString);
       //第三节点
       dm1.ADOQLanbase11.close;
       dm1.ADOQLanbase11.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid1+'__''';//iii_ _
       dm1.ADOQLanbase11.open;
       //dm1.ADOQLanbase11.first;
       while not dm1.ADOQLanbase11.eof do
        begin
          facctid11:=dm1.ADOQLanbase11.fieldbyname('facctid').AsString;
          node1111:=TreeView1.Items.Addchild(Node111,dm1.ADOQLanbase11.fieldbyname('facctname').AsString);
          //第四节点
          dm1.ADOQLanbase111.close;
          dm1.ADOQLanbase111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid11+'__'''; 
          dm1.ADOQLanbase111.open;
         // dm1.ADOQLanbase111.first;
          while not dm1.ADOQLanbase111.eof do
          begin
            facctid111:=dm1.ADOQLanbase111.fieldbyname('facctid').AsString;
            node11111:=TreeView1.Items.Addchild(Node1111,dm1.ADOQLanbase111.fieldbyname('facctname').AsString);
            //第五节点
            dm1.ADOQLanbase1111.close;
            dm1.ADOQLanbase1111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid111+'__'''; 
            dm1.ADOQLanbase1111.open;
           // dm1.ADOQLanbase1111.first;
            while  not  dm1.ADOQLanbase1111.eof  do
            begin
              facctid1111:=dm1.ADOQLanbase1111.fieldbyname('facctid').AsString;
              node111111:=TreeView1.Items.Addchild(Node11111,dm1.ADOQLanbase1111.fieldbyname('facctname').AsString);
              //第六节点
              dm1.ADOQLanbase11111.close;
              dm1.ADOQLanbase11111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid1111+'__''';
              dm1.ADOQLanbase11111.open;
              //dm1.ADOQLanbase11111.first;
              while not dm1.ADOQLanbase11111.Eof do
              begin
                node1111111:=TreeView1.Items.Addchild(Node111111,dm1.ADOQLanbase11111.fieldbyname('facctname').AsString);
                dm1.ADOQLanbase11111.next;
              end;
              dm1.ADOQLanbase1111.next;
            end;
            dm1.ADOQLanbase111.next;
          end;
          dm1.ADOQLanbase11.next;
        end;
       dm1.ADOQLanbase1.next;
    end;
---------------------------------