如果不是通过数据库上设置约束或主键的话,如何才能保证插到某个表中的记录的某个字段值在表中不重复呢?
想到的一个办法是在BeforePost中去数据库查一下有没有重复的记录,但这个方法有个问题,就是如果是修改记录的话就不灵了,它必然会抱怨说存在重复的记录。
究竟应该如何解决呢?

解决方案 »

  1.   


    if Edtid.text <> Query1.FieldByName('Id').Asstring then
    if locate('id', edtid.text, []) then
      showmessage('数据重复');
      

  2.   

    修改不一样呀!
    比如有个表Table1,里面ID,XM两个字段,其中ID字段不能重复.有两条记录1,AAA和2,BBB.
    如果我修改2,BBB记录,如果是改成1,BBB或3,BBB自然不会出问题,但如果用户不小心把2改了一下,又改回为2,这时一提交就会出问题了,程序会抱怨说ID为2的记录已经存在,不能提交.
      

  3.   

    To things(平):
         老兄的這種方法在EDT沒有和數據庫綁定的時候是可以的,但是用到DBEDIT就不行了.
      

  4.   

    我个人觉得dickeybird888(于伟刚)的方法还是可行的,前提是数据表有一个绝对可靠的关键字段。
    things(平)的方法确实不适用于数据绑定控件。
    还有更好的方法吗?