三层里面,我可以正常增加数据,却不能修改和删除数据。
在程序里面,看起来好象是修改了和删除了,但其实没有写到数据库里面。
修改数据:
if clientdataset.canmodify then
begin
clientdataset.edit;
clientdataset.post;
clientdataset.applyupdates(0);
end;删除数据:
if clientdataset.canmodify then
begin
clientdataset.delete;
clientdataset.applyupdates(0);
end;不是这样吗?

解决方案 »

  1.   

    if (ClientDataSet1.ChangeCount > 0) then 
        ClientDataSet1.ApplyUpdates(-1);
      end;
      

  2.   

    一般是因为查询以后,数据库数据已经修改无发更新回去。上次更新以后刷新一下。
    ApplyUpdates(0);
    Refresh;
      

  3.   

    不行啊,用了refresh后出错提示:
    Must applyupdates before refreshing data.但我明明在refresh这句前是applyupdates(0);
    它居然说我没有提交,这究竟是什么问题?
      

  4.   

    偶也有同样的问题,
    不过我的是在删除时,同时要修改另一个表的数据,两个数据不能同时更新,出现错误,
    你的问题1,好像edit和post,applyupdates要用不同的控键,没修改怎么就提交那
    2,在delete上面加上edit,试一下
      

  5.   

    我那里只是简写而已,if xxx.showmodal=mrok then 那些我就不写了,只是不知道为什么会这样。我的只是一个表而已,按理来说不应该出现这样的问题,奇怪。望高手指教啊! 急!