我的问题是:在formcreate事件里定义了生成树也就是treeview就从数据库取出数据然后
生成树了那么问题就出来了。。如果我在数据库里面插入数据时treeview就不能马上把刚才插入的数据给显示出来 。我要的是:数据库里插入数据时。。treeview就能马上显示出来或者触发一个事件达到效果也行谁能帮帮我解决这个问题呢?谢谢了好急啊

解决方案 »

  1.   

    这样你的就错了这样速度慢的很
    应该是点一下,展开,
    按照楼主的在formcreate里用这个函数:
    procedure CreateSubTree(FNodeName: string; Node: TTreeNode = nil);
    var  mLocalName: string;
    TreeNode: TTreeNode;
    Ads_Tmp: TADODataSet;
    begin
    ADS_Tmp := TADODataSet.Create(Self);
    ADS_Tmp.Connection := ADOConn;
    with ADS_Tmp do
    begin
       Close;
       CommandText := 'Select * from Type Where ParentID =' + FNodeName;
       Open;
       First;
       while not Eof do
       begin
       mLocalName := FieldbyName('ID').Asstring;
       TreeNode := TreeView.Items.AddChild(Node, FieldByName('Name').AsString);
       CreateSubTree(mLocalName, TreeNode);
       Next;
       end;
      end;
    end;
      

  2.   

    snake_eye(★蛇眼★上帝派来灌水的人)兄我用的是BDE连数据库的现在要改成ADO也不大可能了时间不允许啊而且用的是
    query作为数据集。。
    那上面的程序该如何改呢?不好意思,思路还不是很清晰,所以再次拜托了!
      

  3.   

    提供参考:
          现在的难点在于实时探知数据库的的数据与当前的数据不同,可否搞两个一样的query ,第二个实时同步(隔一段时间检索一下),若不同则重建树,相同则不动。此法
    就是效率太低
      

  4.   

    据我了解,好像只有interbase数据库有这种触发事件,用ibevent控件来接收
      

  5.   

    插入节点后再触发一下formcreate事件
      

  6.   

    比如说我插入一个按钮来触发treeview的生成但我要的只是把数据库表比如是kucun表  里面有增加的那一条记录增加显示在treeview里如果在触发一下formcreate事件的话,效率应该满低的而且我试过了。。好象不行啊。。
      

  7.   

    大虾们,谁帮帮我啊?解决了再加分!因为我的树是在formcreate就创建了。所以之后只能动态的检查数据库是否有新的记录如果有的话,,就要刷新树----也就是把新增的记录添加到treeview里显示出来。。