Q&A

  • 오라클에서 난 에러메세지를 델파이에서 메세지로...
안녕하세여!!
델피 왕초보임돠 꾸벅~
다름이 아니오라 어플 돌리다가 간혹
ORA-00942: table or view does not exist 나 (엥! 이거밖에 생각이 안나네)
암튼 기타등등..
DB Error가 나는데 이거 기냥 나가면 빨간색 그림에 영어로 뭐라뭐라
에러가 뜨니까 사람들이 헤깔려 해서 델파이 메세지로 부드럽게 바꿀려고
합니다.
근데 try~except로 거르다 보니까 except 할때 EDatabaseError로만
하니까 너무 개념이 큰거같고 암튼 세세하게 오라클 Error 메세지를
컨트롤하고 또 에러메세지 내용도 보여주고 싶습니다.
어키해야 되는지 고수님들 한수만 가르켜 주세여..

암튼 맨날 요렇게 [질문]만 올리게 되는데 저도 언제쯤 [답변] 이라고
함 올려볼지...
2  COMMENTS
  • Profile
    nilriri™ 2002.03.20 02:17
    uses 절에..comObj; 추가...후 사용  (델파이5, 오라클8i, win2k, ADO사용시)

    실제 프로시져에서...

          :
          :
        except
             on E : EOleException do
             begin
                ErrStr := getErrMsg(E,'사용권한 변경사항 적용...');
                Application.MessageBox( PChar(ErrStr), 'SQL 실행 오류',  + MB_DEFBUTTON1 + MB_ICONSTOP + MB_APPLMODAL );
             end;
        end;
           :

    함수들 모아둔 유닛에서..

    아래처럼..선언하시고..

    Function getErrMsg(p_E: EOleException; SQL:String):String;
    var
      errNum, errMsg : String;
    begin
      errNum := '에러 번호 : ' + IntToStr(p_E.ErrorCode) + #13 + #13;
      errMsg := '에러 메시지 : '+ p_E.Message + #13 + #13;
      errMsg := errMsg + '에러 실행문 : '+ SQL + #13;
      Result := errNum + errMsg;
    end;




  • Profile
    루이 2002.03.20 05:59
    답변주셔서 감사합니다.
    근데 ORA-00942 같은 에러는 EOleException에서는 안잡히고
    EDBEngineError로 하니깐 잘 잡히던데여.
    암튼 넘 감사드리고 또 많은 도움이 됐습니다.
    이거 소주라도 한잔 대접하면서 더 많은걸 배우고 싶은데 안타깝군요.