小弟我使用Delphi7中的ADO方式连接ACCESS数据库,将数据表中的主键设置有索引无重复。现在使用DBGrid+DBNavigator来进行数据的增删改,想保持主键数据的不可重复性。由于用户有可能在添加或修改时将多条数据的主键误输入一致,则会弹出一个错误对话框“由于将在索引、 主关键字、或关系中创建重复的值 请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。”如何将这个错误捕获或屏蔽,使程序能够不跳出或停止运行,回复到修改前的样子。或者可以自己加入警告信息。
谢谢各位大虾!

解决方案 »

  1.   

    if 当前输入数据 已经存在 then
    begin
    ShowMessage('已经存在');
    Exit;
    end;
      

  2.   

    http://topic.csdn.net/t/20030326/14/1578930.html
      

  3.   


    try
    except
    end;
    进行屏蔽
      

  4.   

    在数据保存前,先判断主键是否重复(分新增和修改两种情况),如果重复则Cancel,自己可以加提示信息告诉用户。
      

  5.   

    在beforeupdate 事件前判断下