我想做一个监视表的软件,当TABLE_A的表发生变化的时候,我的LABLE1.CAPTION显示表的记录总数,请问怎么做。(不想用TIMER)

解决方案 »

  1.   

    你是监视客户端还是服务器的表?用trigger吧
      

  2.   

    ^_^,笨的方法。
    用Timer,每隔一段时间的读出表的RecordCount,设置全局变量记录表的总数,于上次读出相比较,不同了就显示表的总数。
      

  3.   

    我是要监视服务器数据库的表,用TRIGER,不能够使DELPHI做事情呀?用TIMER主要是考虑当数据变化频繁的时候,会不会处理不过来。请大家给个帮助
      

  4.   

    当TABLE_A的表发生变化的时候,读出表的RecordCount?
      

  5.   

    我不要出发器呀。
    我的原意是当TABLEA发生变化的时候,让DELPHI的EXE程序做一个动作,可是出发器怎么控制EXE文件呀
      

  6.   

    不用time?你要及时的知表的信息?用refresh.不知可行否?try
      

  7.   

    1.提交数据的时候处理。2.如不能控制提交的程序只能是在写一程序在服务器上执行监视,在向其它机子发送消息。3.你用的是什么数据库?触发器不能执行EXE但可以生成一个文本文件或XML文件,你监视这个文件就可以了。4.触发器每次数据变化就将另外一张表的一个段值(+,-)改动,监视程序读这张表就可以了。
      

  8.   

    procedure Table1AfterScroll(DataSet: TDataSet);
    begin
      LABLE1.CAPTION:= table_a.RecordCount;
      Application.ProcessMessages ;
    end;
      

  9.   

    你可以用用户消息机制。
    首先在你的监控程序重载procedure WndProc(var Messages: TMessage); override;
    并建立公共内存区,存放本窗口的Handle。然后再为每个涉及操作TABLE_A的程序,在操作TABLE_A表的时候向监控程序发送你自定义的一个消息(当然首先从公共内存区读取窗口的Handle),当监控程序收到消息时做对应的操作即可。
      

  10.   

    可不可以在TDataSource组件的事件OnDataChange事件中加入代码来做呀?
      

  11.   

    jaunmai() 正解、
    在table的afterscroll事件中写代码。procedure Table1AfterScroll(DataSet: TDataSet);
    begin
      LABLE1.CAPTION:= table_a.RecordCount;
      
    end;
      

  12.   

    是否需要使用TIMER来扫描数据库?
      

  13.   

    你说得还不清楚啊, TABLE_A 是你自己程序控制的 数据表, 还是多用户的?? 是什么类型的?
    MsSql? 还是只是一个Paradox??
    这些不同的条件, 会有不同的解决方法的!!!
      

  14.   

    aiirii(ari) TABLE_A是ORACLE中的一个表,其中有两个字段:
    一、MESSAGE:里面放的是信息内容;
    二、FLG:里面放的是1与0,0代表没有处理,1代表处理了。表的记录不知道什么时候就会插入进来,所以打算使用TIMER扫描这个表,当新的记录进来后,就将MESSAGE的内容写入TABLE_B这个表,然后将FLG置1。
    请问不使用触发器如何写这个程序?