这种情况肯定会触发OnPostError事件,很可能你是在调式模式下,你继续运行程序就会出现你指定的的错误信息

解决方案 »

  1.   

    你把程序编译后的exe文件在delphi外单独执行,看一看效果
      

  2.   

    同意楼上的,在运行环境下而非调试环境.可以用
    try
    post;
    finally
    showmessage();
    end;
      

  3.   

    你应该先检查数据表中是否存在同主键的记录,
    不过,你通过错误消息来检查,不是很好的办法,
    这样会降低系统的稳定性。
    你也可以用这种办法:try
      with ADOQuery1 do
      begin
        Close;
        SQL.Text := 'insert .............';
        Open;
      end;
    except
      ShowMessage('数据库错误');
      ...
    end;
      

  4.   

    try
      ADOQUERY.execsql;
    except
      on e:Exception do    
        showmessage(数据库错误);
    end;
      

  5.   

    应为S_CUBE的写法:
    别可从e中得到错误号及出错信息。
    利用错误号可以使用一些出错信息成中文
      

  6.   

    try
      ADOQUERY.execsql;
    except
      on e:Exception do    
        messagedlg(e.message,mbok,0)
    end;