用DELPHI做一程序,在连接好ACCESS数据库的情况下,通过在TdxDbgrid控件中直接输入数据添加到后台数据表中。按钮的单击事件处理如下:
  with ADOTable1 do
  begin
    Append;
    FieldValues['PFH'] := '新配方';
    Post;
  end;
  其中,配方表的PFH字段为主键,不允许重复。
  这样当输入重复的数据,单击按钮时,会提示“由于在用索引、主关键字、或关系表中创建重复数据,对表的修改没有成功……”
  这种提示是正常的,因为有重复数据。但是我要解决的问题是:
  当输入重复的数据时,在数据库提示这个信息前,怎样捕捉到这个信息,用自己定义的提示内容代替它?使数据库提示的这个信息不显示。请大家帮帮我吧!!!

解决方案 »

  1.   

    用try.. except .. end;
      

  2.   

    To sspeak() :
    谢谢,这个我知道。但如果这样写:try
     with ADOTable1 do
      begin
        Append;
        FieldValues['PFH'] := '新配方';
        Post;
      end;
    except
      showmessage('字段重复!');
    end;
    还是显示数据库提示的错误。我是想在数据库提示错误之前捕捉它,然后用自己定义的提示内容代替它。应该在OnBeforePost事件里写代码的。
    捕捉数据库提示的错误应该是:ADOConnetion1.Errors.Error[0].CurError //或者是……
    但怎样用自己定义的提示内容代替它呢?
    请继续讨论。谢谢!