Q&A

  • 오라클 에러메세지 표시
ApplyUpadte시 오라클 DB의 에러메세지를 사용자에게 messagebox로 바로 보여주거나

그값을 받아 경우에 따른 메세지를 보여주고 싶습니다.

방법을 아시는 분은 알려주시면 감사하겠습니다.

2  COMMENTS
  • Profile
    김영대 1999.11.12 23:26
    최종선 wrote:

    > ApplyUpadte시 오라클 DB의 에러메세지를 사용자에게 messagebox로 바로 보여주거나

    > 그값을 받아 경우에 따른 메세지를 보여주고 싶습니다.

    > 방법을 아시는 분은 알려주시면 감사하겠습니다.



    exception의 E.Message 안에 있는 오라클 에러 번호로 에러종류를

    판별해 보세요



    function DlgBDEErrorrDecision(DataSet: TDataSet; E:EDataBaseError;

    UpdateKind: TUpdateKind): TUpdateAction;

    const

    UpdateKindStr: array[TUpdateKind] of String =('기존자료의 수정',

    '신규자료의 등록','기존자료의 삭제');

    begin

    MessageDlg('정확하지 않은 자료가 있어 저장작업을 실패하였습니다. '+#13#10+

    '오류내용: '+UpdateKindStr[UpdateKind] + #13#10#13#10+

    E.Message, mtInformation, [mbOk], 0);



    Result := uaAbort; {uaFail, uaRetry, uaSkip, uaApplied}

    end;



    procedure TMainForm.Query1UpdateError(DataSet: TDataSet;

    E: EDatabaseError; UpdateKind: TUpdateKind;

    var UpdateAction: TUpdateAction);

    begin

    UpdateAction := DlgBDEErrorrDecision(DataSet, E, UpdateKind);

    end;



  • Profile
    Del초보 1999.11.13 00:48
    제가 시작한지가 며칠 안되서 잘써주신걸 보고도 응용을 못하는군요.-_-;;



    지금 상황은 이렇습니다.Query를 쓰고 화면엔 DBGrid를 두고 입력이나

    수정은 DBEdit를 둬서 수정을 하려고 합니다. cash쓰고요.



    자료를 수정하고 저장버튼을 누를때 간단히



    Query1.ApplyUpdates;

    Query1.CommitUpdates;



    만 쓰니 저장이 되긴되는데 문제는 오라클에서 보내는 에러더라구요.

    가장 간단한 예로 Duplication Error등...

    그래서



    try

    Query1.ApplyUpdates;

    Query1.CommitUpdates;

    except

    Application.message(.....................) 하려고 하는건데



    그 ..............를 어찌해야되는지 여쭤본겁니다.

    바쁘시지만 부탁 좀 드리겠습니다.



    -. 그왕 질문하는김에 하나만 더^^;;;

    위 상황에서 exit(close)해서 나갈때 DBGrid야 못 건드리니까 DBEdit

    에서 수정은 하고 저장은 안한 자료가 있을때 저장하시겠습니까라는

    메세지를 뿌리려고



    if Query1.UpdatesPending = True then 를 써도 걸리지를 않는군요.



    제가 잘못 쓴건가요???