GoodsCode  GoodsName
  001          AAA 
  002          BBB 
  003          CCC GoodsCode是主键 这时侯我 先删除 001 的记录,  然后在添加 001 的记录   , 居然提示插入重复键,  
我跟中 SQL 语句发现先 是先执行"插入"再执行"删除"的
  try
    ADOConnection1.BeginTrans ;
    ADOQuery1.ApplyUpdates ;
    ADOQuery1.CommitUpdates ;
    ADOConnection1.CommitTrans ;
  except
    ADOConnection1.RollbackTrans ;
  end;PB就没有这样的问题 
我跟中 SQL 语句发现先 是先执行"删除"再执行"插入"的 不信你们可以试下这个 Bug

解决方案 »

  1.   

    关于数据库的操作,还是直接用SQL语句比较好
      

  2.   

    这种操作模式,adoquery控件、ado 都可能转为它们自己理解的sql再去执行的
    还是你自己写出希望的sql直接去执行最保险
      

  3.   

    支持这种做法
    如果楼主非要那么做的话,你可以在删除之后ADOConnection1.CommitTrans 然后再涮新一下
    就应该没有问题了
      

  4.   

    那 delphi 做 缓存更新(批量更新)都会有这样的问题,  三层也这样?