procedure TFrmManage.Button2Click(Sender: TObject);
begin
  if ClientDataSet1.ChangeCount > 0 then
  begin
    showmessage('ok');
    ClientDataSet1.Post;
    ClientDataSet1.ApplyUpdates(0);
  end;
end;上面这段代码可以执行N次,但只有第一次的数据才会被上传这是为什么?
我上传一次后,再次修改上传。第二次修改的结果没有被保存ClientDataSet的ApplyUpdates方法只能用一次??

解决方案 »

  1.   

    查一下Provider的Options属性设置呢
      

  2.   

    调试一下,第二次执行时,有没有执行到 ClientDataSet1.ApplyUpdates(0);
    是不是连ClientDataSet1.ChangeCount > 0的条件都没有通过ClientDataSet1.ApplyUpdates(0);本身应该没有问题的
      

  3.   

    if ClientDataSet1.ChangeCount > 0 then 只执行一次检查 ClientDataSet1.ChangeCount 表示的真正含义
      

  4.   

    对了,showmessage('ok');是不是每次都执行了?
      

  5.   

    每次都执行了
    只是只能执行一次,我是用soap连接的。delphi做的web service
      

  6.   

    ClientDataSet1.ApplyUpdates(0);没有问题,
    你试试刷新过数据集后,是不是就看到所有记录了。
      

  7.   

    if ClientDataSet1.State in [dsEdit, dsInsert] then
       ClientDataSet1.Post; if ClientDataSet1.ChangeCount > 0 then
      ...
      

  8.   

    好奇怪,有时候可以保存后两次的修改。
    ?是不是soap连接不太稳定??
      

  9.   

    是不是要RefreshRecord一下或者Refresh一下。