当用程序向数据库表里插入数据的时候可能因为某种原因失败中断,,致使插入一部分,剩一部分,这样就要从数据库表里将插入的重复数据删除
问题在于表里没有可以唯一识别的字段,例如
企业代码   货品号   数量   入库时间   备注
110         a1      20     2004-1-1
110         c1      10     2004-1-3   
112         a1      20     2004-1-1   
112         b1      10     2004-1-4   
113         a1      20     2004-1-1      怎么来识别这些插入的数据是失败中断插入的那些呢??
有什么办法么??起初我想了一个办法就是加了一个自动编号字段,可是取自动的编号老有问题...老是误删其他数据....

解决方案 »

  1.   

    你可以用ado的缓存更新,或者事务处理机制
      

  2.   

    使用事务
     Database1.StartTransaction;
      try
        插入操作
        Database1.Commit;
      except
        Database1.Rollback;
      end;
      

  3.   

    Database1.StartTransaction;
      try
        插入操作
        DataSet.post;//Query.execSql;
        Database1.Commit;//成功就发布事务
      except
        Database1.Rollback;//不成功就回滚,放弃全部插入
      end;