执行: ClientDataSet1.CancelUpdates

解决方案 »

  1.   

    ClientDataSet1数据显示在dbgridr控件中,
    我只修改其中的一条数据后,执行applyupdates(0)后,
    数据库的其它记录也跟着一起被修改了,这是为何?
      

  2.   

    applyupdates是将Table改动但没有写入的纪录写入到数据库中,如果你在执行applyupdates的时候,发现其他的纪录也变化了,那么,你在程序的其他地方可能改变了数据库的纪录(不小心?),并没有将之确认。去查查你程序的其他地方吧。仅用CancelUpdates是治标不治本的做法。
      

  3.   

    可是这样也不对,
    比如我是dbgrid的控件中在第一行输入数字“1”,那么执行applyupdates(0)后,重新显示
    出现了好多条记邓录都变成了“1”,如果输入“2”,那么这些数据又全部变成“2”,没有其它的任何事件了,还是会这样,这又是为何?
      

  4.   

    ClientDataSet1.Reconcile(...)
    后面这个怎么写?
      

  5.   

    "ClientDataSet1数据显示在dbgridr控件中,
    我只修改其中的一条数据后,执行applyupdates(0)后,
    数据库的其它记录也跟着一起被修改了,这是为何? "肯定是你的代码有问题,把代码贴出来大家帮你看看
      

  6.   

    你的数据库没有设主键吧?没设主键,而且数据库表中同时存在两个或以上完全相同的记录就会出现这种情况。你的数据库要设一个primary key。
      

  7.   

    ClientDataSet1.Reconcile(null)
    你将DataSetProvider.ResolveToDataSet设为false试试,如果原来是false设成true看看。