如何实现数据库开发中
    记录录入窗口/记录修改窗口/删除窗口    三者之间记录的实时响应?
    如:
    在录入窗口输入一条记录后,进入修改或删除窗口发现此条记录并没有在修改或删除窗口中的DBGrid里显示出来,当单击某条记录进行修改或删除后发现此条记录又显示出来了.修改窗口和删除窗口间的操作也是这样不能实时响应

解决方案 »

  1.   

    使用DataModual
    然后共用同一个DataSource就可以了!
    :)
      

  2.   

    消息传递,或者在dataset的onRecordChangeComplete中处理。
      

  3.   

    因为你的每个窗口都没有进行刷新,建议,你在每个窗口的OnCreate事件中写:adoquery1.requery;
    这样,你就可以保证各个窗口之间是同步的了
    还有,为什么要把录入、修改、删除分开做呀?做成一个窗口不是更直观吗?如果要这样做,而各个窗口是MDI CHILD的窗口的话,可以考虑用消息处理方式:
    如:在录入了一条记录以后,保存完毕,则发消息更新修改、删除窗口的记录:
    SendMessage(ModifyForm.Handle,WM_FORMREQUERY,0,0);
    在修改窗口自定义消息 :
      procedure FormReQuery(var message : TMessage) ; message WM_FORMREQUERY;{...}
      在这个消息过程中写代码:
      adoquery1.close;
      aodquery1.open;
      

  4.   

    在你添加完记录以后, 先refresh一下,然后再将dbgrid.datasource:=datasource1 时时
      

  5.   

    在输入完数据以后refresh一下,然后在将dbgrid1.datasource设置一下
      

  6.   

    ADO中refresh不太好用,应该colse/open一下数据表(table/query),就可以了