呵呵,不想套了,给你个设计思想,你套用一下就行了。。。
数据表bmclass
id int(自动编号)
parentid int(父ID)
name varchar(分类名称)
<%
'数据库连接
set conn=ServerCreateObject("ADODBConnection")
connopen "driver={SQL Server};server=;DATABASE=test;UID=sa;PWD="
'打开所有父层数据
set rs=ServerCreateObject("ADODBRecordset")
rsOpen "select from bmclass where parentid=0 order by rid",conn,1,3
'层次数表态变量赋初值
format_i=1
'列表主程序段
do while not rseof
'打印父层数据信息
responsewrite "<a href='listaspSelfID=" & rs("id") & "&parentid=" & rs("parentid") & "'>" & rs("name") & "</a>"
responsewrite "<br>"
'子程序调用,子层数据处理
Call ListSub(rs("id"))
rsmovenext
loop
'关闭父层数据集
rsclose
set rs=nothing
'子层数据处理子程序
Sub ListSub(id)
'打开隶属于上层id的所有子层数据信息
set rs_sub=ServerCreateObject("ADODBRecordset")
rs_subOpen "select from bmclass where parentid=" & id & " order by id",conn,1,3
'列子层数据
do while not rs_subeof
'层次数表态变量递进累加
format_i=format_i+1
'循环缩进格式控制,因为顶层与二层不需要缩进,所以从第三层开始引用此程序段
for i=format_i to 3 step -1
responsewrite " |"
responsewrite " "
next
'打印子层数据信息
responsewrite " |----"
responsewrite "<a href='listaspSelfID=" & rs_sub("parentid") & "&parentid=" & rs_sub("parentid") &"'>" & rs_sub("name") & "</a>"
responsewrite "<br>"
'递归调用子程序本身,对子层数据进行逐渐处理
ListSub(rs_sub("id"))
rs_submovenext
loop
'层次数表态变量递退累减
format_i=format_i-1
'关闭子层数据集
rs_subclose
set rs_sub=nothing
End Sub
%>
字节点实为子节点,与子孙节点的区别在于:子节点是某节点的后继节点,而子孙节点是某节点所有子树中的节点。
子节点和子孙节点都是树的基本术语,是由根节点为第一层,以此类推。
树属于非线性数据结构的一种,概念也极多,是由n个节点组成的有限集合。
以上就是关于ACCESS 递归查树型结构所有子孙结点。。全部的内容,包括:ACCESS 递归查树型结构所有子孙结点。。、字节点和子孙节点的区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)