FRDCDS.SetProvider(DSPthunder);
 //FTXTCDS入数据表
 FRDCDS.Open;
 FRDCDS.AppendData(FTXTCDS.DATA, false);
 
 if FThunderDM.ADOQthunder.State<>dsedit then FThunderDM.ADOQthunder.Edit  ;
 if FRDCDS.State<>dsedit then FRDCDS.Edit  ;
 //FRDCDS.Post;
 e:=FRDCDS.ApplyUpdates(-1);
 DSPthunder.ApplyUpdates(FRDCDS.data ,-1,e) ;
只有最后一行能更新到数据库

解决方案 »

  1.   

    很久没搞数据库了, 我记得provider里有一个选项是说更新当前行, 还是更新全部
      

  2.   

    对不起,我描述的不清楚,我说的是我的代码的最后一行才起作用
    而不是最后一条记录保存到数据库。
    我想要的是使用Tclientdataset.Applyupdates就直接到数据库了,是不是我哪儿没设置好呢?
    目前的状态是clientdataset 被provider隔断了与ADOQuery的联系。必须使用
     DSPthunder.ApplyUpdates(FRDCDS.data ,-1,e) ;
    才能更新到数据库。
      

  3.   

    FRDCDS.ApplyUpdates(-1);前加上FRDCDS.Post;试试
      

  4.   

    试过了,就是没作用,并且不post,provider也上传了数据,所以注释了。
      

  5.   

    自己顶下,通过Tprovider,数据取来了,有更新但是不自动上传,很别扭啊。