如何用SQL生成Tteeview中的递归遍历序列。
例如:两个字段
ID            ParentId
0                  -1
1                  -1
2                   0
3                   0
4                   1
5                   1
6                   2  
查询后:
ID            ParentId
0                  -1
2                   0
6                   2
3                   0
1                  -1
4                   1
5                   1
   如何用SQL生成Tteeview中的递归遍历序列。
例如:两个字段
ID            ParentId
0                  -1
1                  -1
2                   0
3                   0
4                   1
5                   1
6                   2  
查询后:
ID            ParentId
0                  -1
2                   0
6                   2
3                   0
1                  -1
4                   1
5                   1
   

解决方案 »

  1.   

    在 delphi 的帮助中 有比较详细的解释 你可以去看看
      

  2.   

    这样的问题俺遇到过也解决了。不过俺不是从SQL语句入手。
    for I := 0 to 6 do begin
      if ParendID = -1 then begin
        创建一个节点,其父节点为nil。利用节点的Data属性存放相关信息,如ID。
      end else begin
        遍历树,根据Data属性中存放的内容找到ID为ParentID的节点;
        创建节点,其父节点为找到的节点。
      end;
    end;
    这里可能会有遍历树的速度问题,因此在表中的数据存放顺序就很重要,如果你用编码那么情况就会好得多,此时遍历实质就是向前查找。
    因为表中的数据是你维护的,因此数据完全可以为:ID            ParentId      CODE
    0                  -1       1        
    2                   0         11
    6                   2           111
    3                   0         12
    1                  -1       2
    4                   1         21
    5                   1         22那么用SQL语句查询时完全可以ORDER BY CODE,那么遍历树时向上查找合适的节点作为父节点则最快。
      

  3.   

    to cnsuyong(小可):用code字段不错,但是树的最大层次受code的长度限制。如果不知道树有
    多少层,你的code定成多长呢?