ClientDataSet1.Delete;
ClientDataSet1.ApplyUpdates(-1);

解决方案 »

  1.   


    clientdataset.delete;
    clientdataset.post;
      

  2.   

    clientdataset.ApplyUpdate(0);

    clientdataset.ApplyUpdate(-1);
      

  3.   

    ApplyUpdate()
    如果你clientdataset.delete
    只是在本地内存中删除,实际远程数据库并没有删除
      

  4.   

    没有post,你的只是在内存中删除
      

  5.   

    post吗
    出现错误是:
      clientdataset not Edit or insert mode ?
      

  6.   

    applyupdate()
    出现的错误是
    update affected more than 1 recored?
      

  7.   

    我用了clientdataset.applyUpdate(-1)
    出现错误
       affect more than 1 record;
      

  8.   

    delete后面是不能紧跟Post的。post能正常通过只能在ClientDataSet的状态为修改活着添加模式的时候。用 AppyUpdates!或者你的EditMode设置为 ReadOnly了。
      

  9.   

    你的数据库设计有问题了,没有关键字吗?是不是有完全重复的两条纪录?这样只能用SQL语句进行删除?
      

  10.   

    Delete后面是不必又Post的,因为Delete自动改变了当前数据,执行了Post。但是你要ApplyUpdates()提交到远程数据库
    你如果用的数据库是Sql7.0或是ACCESS,在7.0中有时候对于添加和原有数据完全一样的一条数据不会出现差错,但删除的时候会告诉你因为记录重复无法定位,就是你“update affected more than 1 recored”的所叙述的异常。
    如果是Sql Server2000就不会有这样的问题,因为如果有这样的问题的话,不会等到你ApplyUodates的时候才发生的。
      

  11.   

    用SQL语句删除吧:
        delsql:='delete * from table where 要删除的记录=xxxx'
        With Query1 Do
        Begin
          Close;
          SQl.Clear;
          SQl.add(delsql);
          ExecSQL;
        End;