假如A 表:序号  姓名
          1     xxx
          2     yyy
          3     zzz
我想双击“2”后,2的记录就不在这个DBgrid中显示了 在另外一个DBgrid中显示
但是数据库中的记录仍然是3条 而且没有任何改动 请问怎么才可以做到啊

解决方案 »

  1.   

    dbgrid是数据感知的,你想这样就换别的吧
      

  2.   

    删除那条数据,但不要提交事务
    或者用用dxmemdata控件
      

  3.   

    接楼上说,标识位改变完,让2个DBgrid重新刷新!
      

  4.   

    单击事件后重设filter,刷新两个dbgrid。
      

  5.   

    如果用filter能过滤掉好多不同的记录吗?
      

  6.   

    如果记录不多的话,
    可以用循环用listlox来处理。
      

  7.   

    用多个dateset,先把那条记录移到别的表,然后再放回去不就可以了
      

  8.   

    可以使用TDatasetProvider和TClientDataSet,这样数据库表的记录是保留在内存里,
    不管对它们如何修改,只要不ApplyUpdates,就不会改动数据库。
      

  9.   

    同意楼上的说法,我也是这么做的。
    给两个DBGrid分别指定ClientDataSet组件,这样就没问题了。
      

  10.   

    还有就是 我用的是ADO控件啊
    不是BDE
    好象不可以吧
      

  11.   

    表中不是有序号字段么?
    这样, 用SQL语句 select * from 表A where 序号<> :p序号
    开始时,默认给参数 p序号赋值为0;
    双击某条记录后, 将该条记录的序号值赋给参数 p序号;
    再刷新一下就可以了.
      

  12.   

    可以使用RxMemoryData控件,就想操作数据库一样,很好