如何用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
例如:两个字段
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
解决方案 »
- 【菜鸟问题】数据量很大的时候应用程序出现无法响应
- 恶心多年,终于还是忍不住了
- 第三方控件dxDbGrid的字体颜色问题
- 从TPanel继承的控件,在窗口的释放时提示“no parentwindow”信息?
- 请金华或兰溪的Delphi程序员和我联系,有个项目要找个兼职做一下!!
- 在Delphi7 中如何添加 TNMFTP 控件?(急)
- 为什么Active Form在本机可以显示,在别的机器就无法显示????
- 使用BDE能不能直接获取数据库表中的某一条记录的一个字段的值?
- Application.Terminate这个什么意思啊?
- 哪有好的算法书下载呢?
- 100分请教:用微软的ActiveX控件MediaPlayer2在程序里播放影片时,如何才能去掉刚开始播放时显示的MS Mediaplayer Logo?
- Delphi 7.0中的打印报表控键是哪个呀?
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,那么遍历树时向上查找合适的节点作为父节点则最快。
多少层,你的code定成多长呢?