是不是要用递归解决呀?我的老是出现内存不足的问题,高分求解!
有表如下:
ID LEVEL PID
1 0 0
2 0 0
3 1 1
4 2 3
5 3 4
该表反映出树:
1
-3
--4
---5
2
树已经显示出来.现在有一个问题.假如我把4移到2下面的,如下:
1
-3
2
-4
--5
那么跟在2后面的点也会过去,这是对的.我也实现了.但是,我实现不了的前面的LEVEL值如何更改.谢谢.
这是我的代码:
<%
sub modi(b)
set rsc=conn.execute( "select * from product_type where pid= "&b& " ")
do while not rsc.eof
aa=a+rsc( "level2 ")
conn.execute( "update product_type set level2= ' "&a& " ' where pid= ' "&b& " ' ")
call modi(b)
rsc.movenext
loop
rsc.close
set rsc=nothing
end sub
call modi(ee)
%>
提示内存不足.谢谢
------解决方案--------------------level2 是什么?你的表结构中根本没有,而且你这么嵌套循环查询,估计是递归没用好,造成死循环了
------解决方案--------------------我提一個想法,應該不需要使用 递归
1.用一個 循环 求出這一支里所有的 ID 如上為 4,5
2.算出 level 的相差值 如上為 2-0 =2 即4的level- 2的level
3.用一個Update語句:如:Update product_type set level2=level2+2 where pid in (4,5)