with QueryAMD do
   begin
      if QueryAMD.IsEmpty then
      begin
         MessageDlg('没有记录需要删除!', mtConfirmation, [mbOK], 0);
         Exit;
      end
      else
      begin
         if MessageDlg('确定删除此条记录嘛?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
         begin
            Delete;
            UpdateRecord;
            ApplyUpdates;
            Active := False;
         end
         else
            Exit;
            
         GetData;
      end;
   end;
当执行到UpdateRecord时报错,QueryAMD不在insert状态或EDIT状态,这是何故??急,在线关注!!

解决方案 »

  1.   

    UpdateRecord;
                ApplyUpdates;
                Active := False;
    删除直接DELETE就可以啊。上面三句不知有何用处?
      

  2.   

    是呀,UpdateRecord没用过,不知有何“贵”用呢?
    你要是设置了缓存更新,最后再ApplyUpdates,为什么要删除一条就提交一次呢?而且还关闭再打开,麻烦,不符合缓存更新的意义。
      

  3.   

    你可以在,DELETE前面用一下EDIT方法!就可以了!
      

  4.   

    按zfmich的做法,由于我采用的是缓存更新,数据提交不了;
    按TWWH的做法,去掉UpdateRecord,最后ApplyUpdates,系统报错“Record locked by another user.”
    按Cheney的做法,报错同TWWH!!!
      

  5.   

    吐血!!
    同意TWWWH的说法