好象当我新建了一条记录,然后又修改了记录,保存时,就会出现此问题,不知何故,
我给每个字段赋初值也没用.我用ADO方式,各位大侠帮帮忙,急

解决方案 »

  1.   

    有索引?
    保存后refresh一下试试
      

  2.   

    由于所修改的记录与数据库所存在的记录冲突,导致更改失败(如其他用户已将记录删除),如果没有触发器,其实程序发生警告信息给Errors集合,但不终止程序运行,也不会出实时错误提示。如果你加上触发器,你所进行批更新包括从Deleted表中记录,即所有删除的记录,所有的更新请求都不存在(或已被其它用户删除),所以出现实时运行错误。 
        建议:用Ado对象Update方法代替UpdataBath试一试
      

  3.   

    我刚刚碰到,缺主键,建一个主键,哪怕没有的都行,比如建一个字段IN_ID,设为自增字段,并设其为主键,怎么样,解决了吗?
      

  4.   

    这个问题是老问题问题关键是在数据表中出现重复记录
    当Delphi6.0刚刚推出来的时候,很多宣传资料说解决了这个问题,但是在最残酷的测试下,依然出现此问题!最容易出现的地方是:
      1.当新增记录的时候,表里面添加了默认值,然后保存。因为Delphi默认不添加空的重复记录(当年FoxPro程序员转Delphi的时候被这个限制搞的头晕脑胀),但是只要有值就可以添加(大量出现在主从关系的从表中,关联字段默认添加),然后就死掉了!
    2 小心用触发器,要不你会死得很惨
       只有更新时触发,那么INSERT时如何处理,其实这个问题最容易出现在这里!
      据我的使用及测试经验,一般解决方案有如下几点:1、及时升级你的MDAC(目前是2.7 Refresh 2)及开发工具补丁,通过ADO方式连接数据库这是没有办法的办法,当然不会很彻底;
    2、给数据库建立唯一索引,这种方法根据实际情况而定,因为很多情况下必须要添加自动递增字段,象有些基础资料数据库根本就不可取
    3、比较好的办法,全部用手工控制不出现重复记录一般情况下,控制方法主要有:1、尽量不使用DB控件,尤其是DBNavigate控件,;2、多数数据控制可以通过键值控制或者通过触发器控制!
      

  5.   

    问题觖决方法是建一个主键,
    多谢loveness(天若有情天亦老) 啊