使用字符串做ID比较好操作如:
000,name1,null
     000000,name2,000
     000001,name3,000
           000001000,name4,000001

解决方案 »

  1.   

    最好表结构这样建立
    Create table TAB_A
    (
      TAB_A_ID  INT IDENTITY(1,1),
      TAB_A_RELATIONCODE   VARCHAR(24),--
      TAB_A_NAME           VARCHAR(128)
    )
    DELETE FROM TAB_A WHERE TAB_A_RELATIONCODE LIKE '***%'
    SELECT FROM TAB_A WHERE TAB_A_RELATIONCODE LIKE '***%'
      

  2.   

    什么数据库,如果时ORACLE可以这样:
    1 .把ID='xxxxx'的所以子节点全部找出来,包括孙子,孙子的孙子.....
    select * from your_table start with id='xxxxx'
    connect by parentid=prior id 
    2、删除ID='xxxxx'的所有字节点
    delete from your_table where id in
    (select * from your_table start with id='xxxxx'
    connect by parentid=prior id )
      

  3.   

    谢谢楼上两位
     哦,我用的数据库是SQLserver 2000
    请各位大侠指教!
      谢谢
      

  4.   

    你的数据表是怎么设计的呢!,如果是数字开头的话,你可以使用
    delete from table where id like '11111%'
    把11111那一层的都删除掉!
    但不知你的表结构是怎样的,所以也只能模糊回答!
      

  5.   

    数据库设计如下:
      Id varchar(6)
      Name varchar(20)
      Parentid varchar(6)
    我不想用szMMX的方式,也就是说,ID为六位为主键,
     不想把上层的ID带到下层去,请问有什么好的方法吗?
    等待
     谢谢!
      

  6.   

    兄弟们,帮帮忙了
     help
      

  7.   

    //这是添加根节点的过程,数据表跟你的字段一样。有childid,parentid,content三个字段。(你可以根据这个来编写删除过程,道理应该是一样的)
    query1.Close;
      query1.SQL.Clear;
      query1.SQL.Add('select * from manage where parentid=0');
      query1.Open;
      while not query1.Eof do
      begin
      s:=query1.FieldValues['content'];
      node1:=treeview2.Items.Add(nil,s);
      SetComCtlStyle(TreeView2,TVS_CHECKBOXES,True);
      //SetNodeChecked(node1,true);
      id:=query1.FieldValues['childid'];
      child2(node1,id);
      query1.Next;
    end;
    //这是递归过程
    procedure TForm3.child2(var node1: Ttreenode; id: integer);
    var
      node2:Ttreenode;
      query2:Tquery;
      s:string;
      node:Ttreenode;
    begin
      query2:=Tquery.Create(nil);
      query2.Close;
      query2.DatabaseName:='bbb';
      query2.SQL.Clear;
      query2.SQL.Add('select * from manage where parentid=:a1');
      query2.Params[0].Value:=id;
      query2.Open;
      while not query2.Eof do
      begin
      node2:=node1;
      s:=query2.FieldValues['content'];
      id:=query2.FieldValues['childid'];
      node:=treeview2.Items.AddChild(node1,s);
      node1:=node;
      SetComCtlStyle(TreeView2,TVS_CHECKBOXES,True);
      //if checkbox1.Checked then
      //SetNodeChecked(node1,true);
      child2(node1,id);
      node1:=node2;
      query2.Next;
      end;
      query2.Free;
    end;
      

  8.   

    谢谢killer_wzb关于递归的Method,
     给分