关闭子窗口前立即Query1.Refresh,行不行?

解决方案 »

  1.   

    Query1.active := False;
    Query1.active := True;
    这样好不好?
      

  2.   

    你使用Tquery的缓存模式码?
    else
    再执行一遍Tquery的Open,WuHeHai(河海)的方法应该可行.
      

  3.   

    如果你想更新dbgrid,必然要让query重新从数据库取得更新后的结果集,所以close再open是可行的,不过对于bdgrid,可以尝试直接给dbgrid.fields[].value:=...;的方式直接为dbgrid赋值,然后提交到数据库,这样就会更新dbgrid的显示。试试吧
      

  4.   

    用书签试试,先用书签定位记录.修改记录,提交刷新重定位(如果要保持DBGRID记录完全一致你还需要做些代码,用于记录前后位移).如果是多层结构情况比这要复杂些.
      

  5.   

    哈哈
    BCB(:))  和 WuHeHai(河海) 做得好?哈哈
      

  6.   

    上面的仁兄你试过没有,根本就不行,可能是我的意思说的不明了
    renzhm说的再执行一遍当然行,但我想问问有没有更好点的方法,
    tangqin说得到是好像可以试一下,能不能在详试一下
    再问一下,为什么在这里query1.refresh没有用!
      

  7.   

    把tquery配合TUpdateSQL来使用,在子窗口修改时的数据源与主窗口的数据源为同一个,这样在子窗口做的任何变动都会直接在主窗口中反映出来。
      

  8.   

    to clacklin:
    我主窗口是用query和dbgrid,子窗口是table和dbedit
    你的意思是在子窗口还是在主窗口用一个TUpdatesql?
      

  9.   

    子窗口直接用Edit等普通控件,而不用数据控件,这样虽然代码量会增加,但控制方便也可以避免这种情况了!
      

  10.   

    在主窗口里,然后只要子窗口uses主窗口即可调用。最好你应该把query和updatesql控件放在datamodule里,然后主窗口和子窗口都调用该datamodule即可。