关于树的问题??

wpyyl 2003-07-02 04:34:44
我有两个表,第一表里的字段是:DataId(序号),Name(名称)
第二个表里字段是:id(序号),patrsid(父节点), patrsName,(节点名称) parentId,(子节点)DataId (上表的序号)
就是这样两个表。第一个表是固定的。我在取树时,先把第一个表的(名称)作为树
的第一层。最主要就是第二表。可以说是没有固定的层次的。

id patrsid patrsName Parentid, Dataid
1 1 xuxiao -1 001
2 2 jidian 1 001
3 3 huaxue 2 001
就是我上面的结构图。我如何遍历我下一个表的层次。请高手指点。
...全文
21 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
slash8899 2003-07-02
  • 打赏
  • 举报
回复
双亲表示法的一棵树 看看数据结构哈
wpyyl 2003-07-02
  • 打赏
  • 举报
回复
代码如下:但是只有两层
with dmfrm.QryComType do
begin
Close;
Sql.Clear;
Sql.Add('Select * From Com_Data_Mf where data_type_id = ''RUN0102''');
Open;
First;
while not eof do
begin
s_DataId := trim(dmfrm.QryComType.FieldByName('Data_id').AsString);
s_DataName := dmfrm.QryComType.FieldByName('Data_Content').AsString;
TreeNode1:= tvCatalog.Items.Addchild(TreeNode0,s_DataId+'-'+s_DataName);
with dmfrm.QryPartsCatalog do
begin
Close;
Sql.Clear;
Sql.Add('Select * from Fix_partsCatalog where Pc_Engineid='''+s_DataId+''' and Pc_parentPartsId =''-1''');
Open;
First;
while not dmfrm.QryPartsCatalog.eof do
begin
s_partsId := Dmfrm.QryPartsCatalog.FieldByName('Pc_PartsId').AsString;
s_PartsName := Dmfrm.QryPartsCatalog.FieldByName('Pc_PartsName').AsString;
i_Pid := Dmfrm.QryPartsCatalog.fieldByName('Pid').AsInteger;
NodeText := s_partsId + '-' + s_PartsName;
TreeNode2 := tvCatalog.Items.AddChild(TreeNode1, NodeText);
Next;
end;
Close;
end;
Next;
end;
Close;
end;
如何把第二个表中的其他层次也显示出来
wpyyl 2003-07-02
  • 打赏
  • 举报
回复
对是的第二个表的层次是不固定的。该怎样把第二个表的每层都显示出来
tw_cshn 2003-07-02
  • 打赏
  • 举报
回复
你的第一个表有什么用,第二个表就已经是一棵树了
xuejinlong 2003-07-02
  • 打赏
  • 举报
回复
怎么说第二个表没有层次呢?你的Patrsid,Parentid不是代表层次的吗?你到底想要干什么呢?有点儿不明白,你想要结果呢,还是要怎样?

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧