本帖最后由 seleron 于 2012-03-31 14:36:17 编辑

解决方案 »

  1.   

    function GetAllID(intParentID:integer;var result_ID,result_name:string):boolean;
    var qyTemp: TADOQuery;
      strSql:string;
      intID:integer;
      strtmp,result_tmp_i,result_tmp_n:string;
    begin
      result:=false;
      result_name:='';
      result_tmp_i:='';
      result_tmp_n:='';
      qyTemp := TADOQuery.Create(nil);
    //  qyTemp.Connection := Con1;
      strsql:='select id,name from tablex where parentid='+inttostr(intParentID);
      qyTemp.Close;
      qyTemp.SQL.Text:=strSql;
      qyTemp.Open;
      strtmp:=IntToStr(intParentID);
      if qyTemp.RecordCount<1 then exit;
      qyTemp.First;
      while not qyTemp.Eof do begin
        intId:=qyTemp.Fieldbyname('id').AsInteger;
        result_name:=result_name+' '+qyTemp.Fieldbyname('name').AsString;
        if GetAllID(intID,result_tmp_i,result_tmp_n) then begin
          result_ID:=result_ID+','+result_tmp_i;
          result_name:=result_name+','+result_tmp_n;
        end;
        qyTemp.Next;
      end;
      result:=true;
    end;