Q&A

  • 서버 다운 되었을때 메세지 처리!
안녕하세요!



데이터베이스 접속할시, 서버가 다운된 상태이면 에러 메세지를 보여주고 로깅 화면을

종료하려고 합니다.

그런데 'A' 부분에서 프로그램이 멈추어 집니다.

해결방법을 알고 계시는 분은 답변 부탁드립니다.



procedure TDM1.DM1Create(Sender: TObject);

begin

// 서버 연결

try

Database1.Connected := True; ==================> A

except

on E: EDBEngineError do

OraErrProc(Pchar(E.message));

end;



if Database1.Connected = True then

SUCCHK := 'Y' ============> 메인 화면 실행

else

SUCCHK := 'N'; ============> 로깅 화면 종료

end;



procedure OraErrProc(tmpE: string);

var

tmpNum : integer;

tmpStr: string;

begin

tmpNum := pos('ORA', tmpE);

tmpStr := copy(tmpE, tmpNum + 4, 5);

tmpNum := strtoint(tmpStr);



case tmpNum of

12154 : Windows.MessageBox(0, '서버 접속에 문제가 생겼습니다. ' + #13 + '잠시 후에 다시 접속해 주십시오.', '접속오류', MB_OK);

end;//end case

end;



2000.1.14

문영미 올림



1  COMMENTS
  • Profile
    김영대 2000.01.15 02:01
    문영미 wrote:

    > 안녕하세요!

    >

    > 데이터베이스 접속할시, 서버가 다운된 상태이면 에러 메세지를 보여주고 로깅 화면을

    > 종료하려고 합니다.

    > 그런데 'A' 부분에서 프로그램이 멈추어 집니다.

    > 해결방법을 알고 계시는 분은 답변 부탁드립니다.

    >

    > procedure TDM1.DM1Create(Sender: TObject);

    > begin

    > // 서버 연결

    > try

    > Database1.Connected := True; ==================> A

    > except

    > on E: EDBEngineError do

    > OraErrProc(Pchar(E.message));

    > end;

    >

    > if Database1.Connected = True then

    > SUCCHK := 'Y' ============> 메인 화면 실행

    > else

    > SUCCHK := 'N'; ============> 로깅 화면 종료

    > end;

    >

    > procedure OraErrProc(tmpE: string);

    > var

    > tmpNum : integer;

    > tmpStr: string;

    > begin

    > tmpNum := pos('ORA', tmpE);

    > tmpStr := copy(tmpE, tmpNum + 4, 5);

    > tmpNum := strtoint(tmpStr);

    >

    > case tmpNum of

    > 12154 : Windows.MessageBox(0, '서버 접속에 문제가 생겼습니다. ' + #13 + '잠시 후에 다시 접속해 주십시오.', '접속오류', MB_OK);

    > end;//end case

    > end;

    >

    > 2000.1.14

    > 문영미 올림



    제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의

    "공개 프로그램 소스 "에서

    "[공개] ORACLE 서버의 접속가능여부 검사하기" 를 사용해 보세요