用数据表创建树

2016-02-19 14:18 28 1 收藏

今天图老师小编给大家展示的是用数据表创建树,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

 

  数据库结构:
  字段      类型
  ID          整型     索引(无重复)
  name      文本
  father     整型
  
  
  
  //tree初始化
  procedure TForm1.FormActivate(Sender: TObject);
    var i:integer;
  begin
    treeview1.Items.BeginUpdate;
    while not(adotable1.Eof) do
    begin
      if ADOTable1.FieldValues['father']=0 then
        treeview1.Items.addchild(treeview1.DropTarget,ADOTable1.FieldValues['name'])
      else
      begin
        i:=0;
        repeat
          if treeview1.Items.Item[i].Text = ADOTable1.Lookup('ID',ADOTable1.FieldValues['father'],'name') then
          begin
            treeview1.Items.AddChild(treeview1.Items.Item[i],ADOTable1.FieldValues['name']);
            break;
          end;
          i:=i+1;
        until iadotable1.RecordCount;
      end;
      ADOTable1.next;
    end;
    treeview1.Items.EndUpdate;
  end;

  //tree添加
  procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
  begin
    adotable1.Last;
    i:=adotable1.FieldValues['ID'];
    if checkbox1.Checked=false then
    begin
      adotable1.InsertRecord([edit1.Text,adotable1.Lookup('name',treeview1.Selected.Text,'ID'),i+1]);
      treeview1.Items.AddChild(treeview1.Selected,edit1.Text);
    end
    else
    begin
      adotable1.InsertRecord([edit1.Text,0,i+1]);
      treeview1.Items.AddChild(treeview1.DropTarget,edit1.Text);
    end;
  end;

  //tree删除
  procedure TForm1.Button3Click(Sender: TObject);
  begin
    if treeview1.Selected.HasChildren then
    begin
      showmessage('含有子项,不能删除.');
      abort;
    end;
    begin
      adotable1.Locate('name',treeview1.Selected.Text,[loPartialKey]);
      adotable1.Delete;
      treeview1.Items.Delete(treeview1.Selected);
    end;
  end;

  //tree图标
  procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode);
  begin
    if Node.Expanded then
      Node.ImageIndex := 1
    else
      Node.ImageIndex := 0
  end;

  //tree图标
  procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject;Node: TTreeNode);
  begin
    node.SelectedIndex:=node.ImageIndex;
  end;

  //list初始化
  procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
    var p:pointer;
  begin
    listview1.Items.Clear;
    if adotable2.Locate('class',adotable1.Lookup('name',treeview1.Selected.Text,'ID'),[loPartialKey])=true then
    begin
      p:=listview1.Items.Add;
      listview1.Items.Item[listview1.Items.IndexOf(p)].Caption:=adotable2.FieldValues['name'];
      listview1.Items.Item[listview1.Items.IndexOf(p)].SubItems.Add(adotable2.FieldValues['url']);
    end;
  end;

  //list添加
  procedure TForm1.Button2Click(Sender: TObject);
    var p:pointer;
  begin
    p:=listview1.Items.Add;
    listview1.Items.Item[listview1.Items.IndexOf(p)].Caption:=edit2.Text;
    listview1.Items.Item[listview1.Items.IndexOf(p)].SubItems.Add(edit3.Text);
    adotable2.InsertRecord([adotable1.Lookup('name',treeview1.Selected.Text,'ID'),edit2.Text,edit3.Text]);
  end;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  //list删除
  procedure TForm1.Button4Click(Sender: TObject);
  begin
    adotable2.Locate('name',listview1.Selected.Caption,[loPartialKey]);
    adotable2.Delete;
    listview1.Selected.Delete;
  end;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1606684.html

延伸阅读
正在看的ORACLE教程是:Oracle 数据表分区的策略。本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义, 本文的工作在Oracle8.1.6下实现。 Oracle虽然是一个大型的DBMS,但如果不对记录比较多的表进行处理,仍然发挥不了Oracle管理大型数据...
数据结构如下:  CREATE TABLE [tbTree] (  [ID] [varchar] (4) COLLATE  NOT NULL ,  [Context] [nvarchar] (50)  NULL ,  [ParentID] [varchar] (4)  NULL ,  CONSTRAINT [PK_tbTree] PRIMARY KEY  CLUSTERED  (   [ID]  )  ON [PRI...
标签: PHP
  //用函数读出数据表内容放入二维数组 //动态sql语句 //以读出点击次数表为例。 function list_hit($fields,$where,$order,$direction,$limit,$conn) { if ($fields=="") {$fields="hit_id,banner_id,hit_ip,hit_time";} if ($order=="") {$direction="";} $sql="select $fields ...
1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec)  2、创建一个数据库abccs mysql CREATE DATABASE abccs; 注意不同操作系统对大小写的敏感。 3、选择你所创建的数据库...
数据表的删除比较简单,表删除后其占用的空间就被系统释放和回收,表的删除是无法回滚的操作。可删除的内容包括。 表的定义 表中的数据 表中的索引 表中的约束条件 表上的触发器 表中的权限 在里删除表 (1)如图7.35所示。 (2)出现如图7.36所示界面。 (3)对应上述删除数据表director的SQL代码为...

经验教程

289

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部