Q&A

  • DBGRID에서 입력시 Key violation 에러메세지 처리?
그리드상에서 중복된 자료를 입력하고 상하방향키를 움직일 경우 Key Violation



에러 메세지를 발생합니다. 이 메세지를 제가 원하는 메세지 예를 들어



"자료가 중복 되었습니다.'로 출력을 하고 싶습니다. 어떻게 해야 처리가



가능한지요. 테이블의 OnPostError 이벤트에서는 되지가 않더군요. 버튼컴포넌트에서



자료를 저장하는 루틴을 추가할 경우 Try ~ Except ~ End 문으로 처리하면 되지만



그리드상에서는 어떻게 처리 해야 하는지 모르겠네요.











1  COMMENTS
  • Profile
    bassmania 2000.09.26 22:47
    양용민 wrote:

    > 그리드상에서 중복된 자료를 입력하고 상하방향키를 움직일 경우 Key Violation

    >

    > 에러 메세지를 발생합니다. 이 메세지를 제가 원하는 메세지 예를 들어

    >

    > "자료가 중복 되었습니다.'로 출력을 하고 싶습니다. 어떻게 해야 처리가

    >

    > 가능한지요. 테이블의 OnPostError 이벤트에서는 되지가 않더군요. 버튼컴포넌트에서

    >

    > 자료를 저장하는 루틴을 추가할 경우 Try ~ Except ~ End 문으로 처리하면 되지만

    >

    > 그리드상에서는 어떻게 처리 해야 하는지 모르겠네요.

    >





    안녕하세요. 배스마니아 조덕진입니다.

    델파이 초보라 도움이 될지 모르겠네요.

    다음과 같은 코드를 추가하시면 될 것 같네요.



    private

    { Private declarations }

    procedure AppException(Sender: TObject; E: Exception);



    procedure TForm.FormCreate(Sender: TObject);

    begin

    Application.OnException := AppException;

    end;



    procedure TForm.AppException(Sender: TObject; E: Exception);

    begin

    if pos('Key violation', E.Message) > 0 then

    ShowMessage('Key Violation Error.!')

    else if pos('Update failed', E.Message) > 0 then

    ShowMessage('Update Faied Error.!')

    else

    ShowMessage(E.Message);

    end;



    이곳 Q&A에 있던 내용입니다. 해당 폼에서 예외처리가 필요한 경우 사용하시면 될 것

    같네요.



    도움이 되셨길 바랍니다.



    그럼... 즐코되세요...