안녕하세요!
데이터베이스 접속할시, 서버가 다운된 상태이면 에러 메세지를 보여주고 로깅 화면을
종료하려고 합니다.
그런데 '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
문영미 올림
> 안녕하세요!
>
> 데이터베이스 접속할시, 서버가 다운된 상태이면 에러 메세지를 보여주고 로깅 화면을
> 종료하려고 합니다.
> 그런데 '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 서버의 접속가능여부 검사하기" 를 사용해 보세요