Table1的结构:
字段名    类型      长度
ID        integer               //当前记录的ID号
Name      String    10          //当前记录的名称,显示在Treeview中 
PID       integer               //父节点ID号Table1的内容:
ID   Name   PID
1    a      0
2    b      1
3    c      1
4    d      0
对应TreeView1应为:|--a
|  |--b
|  |--c
|
|--d
我已经写了一个正确的从表到树的过程:
procedure TForm1.table2tree(var nod: ttreenode; var id: integer);
var
  New_id:integer;
  New_name:string;
  bookmk:TBookMark;
begin
  table1.filtered:=false;
  table1.filter:='PID='+inttostr(Id);
  table1.filtered:=true;
  while not table1.Eof do
  begin
    New_name:=table1.FieldByName('name').AsString ;
    Nod:=Tree1.Items.AddChild(Nod,New_name);
    New_id:=table1.FieldByName('ID').AsInteger;
    bookmk:=table1.GetBook;
    Tb2Tr(Nod,New_id);
    Nod:=Nod.Parent;
    table1.filter:='PID='+inttostr(Id);
    if Table1.BookValid(bookmk) then
    begin
      table1.GotoBook(bookmk);
      table1.FreeBook(bookmk);
    end;
    table1.next;
  end;
end;调用:
procedure TForm1.Button1Click(Sender: TObject);
var
  snode: TTreenode;
  sid: integer;
begin
  snode:=nil;   
  sid:=0;
  tb2tr(snode,sid);
  table1.Filtered:=false;
end;
--------------------------
现在想请大家写一段处理代码:删除某一树节点,同时删除数据表中对应的记录内容。

解决方案 »

  1.   

    你可以遍历这个TREE查找嘛 !!
      

  2.   

    取得删除节点的node.text然后执行sql语句:'delete * from table where name = '+''''+node.text+'''';
      

  3.   

    你在树中添加节点时带上NodeData,值为表中的ID的值
    删除节点时删除对应表中的记录时可能方便些
      

  4.   

    我也想问一下,,我在用TQUERY删除数据时,为什么总提示数据集的状态不可写,怎样才能使其可以修改,,,,,,多谢了,,,
      

  5.   

    你想怎么删除树上的节点??if not Selected.HasChildren then
    begin
      Selected.Delete;
      //--> 执行'delete * from table where ID = Selected.data中的值
    end
    else 
      //----> 提示?
      

  6.   

    不管是从树到接点还是从接点到树,你都要取得联系,在这里你的树上最好显示ID和name
    ID和Name间一般是用空格这类的符号搁开,
    删除DBGRID的记录时:只有记下ID去遍李树了。
    选种接点时:记下ID去找DBGIRD了。
      

  7.   

    最简单方法:
    你是可以记录这个节点与Table对应的记录的,(否则你是怎么生成树的呢?)
    从表中删除这条数据,再重新生成树就可以了.注意:
    若有子点, 要先把所有子点删除.
      

  8.   

    同上,先根据这个节点的Node.text查找数据库中的记录,删除该记录,再重新生成树.
    为了方便,你可以写一个Treeload函数进行树的重载.