1.先在数据库内新增一笔资料,保存之前先检查是否有重复记录,如果有就提示重复,没有就直接保存。
2.保存成功后,点修改,(不做任何修改)点保存时,就会提示有重复的数据。
3.如果在保存时先判断是新增或是修改时,就能利用修改时,把所有资料修改相同的数据。
如:    A字段   B字段
     A       AA
     B       BB
按第2个方法,只要点保存就会有提示重复。按第3个方法,就可以把 B ,BB 修改为A, AA

解决方案 »

  1.   

    例如A字段视为不可重复的字段
    则在程序中设置一个全局变量TmpID,新建时TmpID='';修改时TmpID='旧值';保存时这样判断:
    adoquery1.sql.text:='select 1 from t where 字段A=''新值'' and 字段A<>'+Quotedstr(TmpID);
    if not adoquery1.isempty then
    showmessage('重复');
      

  2.   

    我觉得这种问题应该自己思考。这里很明显是重复检查的逻辑有问题,而且这个逻辑并不复杂。
    delphi程序员思考得太少了,有一种伸手就要结果的惯性思维。
      

  3.   

    估计是你的代码写得有问题,检查一下(update语句)