Q&A

  • 랜케이블이 빠진 것을 알수 있는 방법이 있나요 ?
windows 2000 같은데 보면 랜케이블을 빼는 즉시 '네트워크 케이블 언플러그 됨' 이란 메시지가 뜨잖아요..
델파이에서 랜케이블이 빠졌는가를 즉시 알아낼 수 있는 방법이 뭐 없을까요 ?
걍.. 계속 다른system 으로 ping 때리고 있다가 ping 안되면.. 케이블 빠졌다고 판단하는 뭐 그런 방법 말고.. 제대로 된(?) 방법이 있나해서요..
고수님들의 의견 부탁드림돠..
1  COMMENTS
  • Profile
    sky 2003.07.18 20:21
    안녕하세요.
    저두 얼마전 같은 문제로 고민한 적이 있었는데..
    랜선이 빠졌을 때 서버(오라클)에 접속을 못할때 특정 메시지 박스를 보여주고자 OnException 이벤트를 이용했습니다.

    // 프로시저 선언
    Procedure FormExceptionHandler(Sender: TObject; E: Exception);

    // 폼의 OnCreate 이벤트에..
    Application.OnException := FormExceptionHandler;


    procedure TForm1.FormExceptionHandler(Sender: TObject; E: Exception);
    var
        Err_code : integer;
    begin
       if E is EDatabaseError then
       begin
           Err_code := fnStrPos('ORA-03113', E.Message, 1); // 'ORA-03113'이 랜선이 빠졌을때 나는 에러번호더군요. 체크할 에러를 여기에 적으시면 될거같군요.

           If Err_code > 1 Then
              showmessage('서버와의 연결에 문제가 있습니다.')
           else
              showmessage('그 밖의 오류!');
       end;
    end;

    // S 문자열에 aSubstr 문자열이 있는지 체크하는 함수..
    function TForm1.fnStrPos(const aSubstr, S: String; aOfs: Integer): Integer;
    begin
        Result := Pos(aSubStr, Copy(S, aOfs, (Length(S) - aOfs) + 1));
        if (Result > 0) and (aOfs > 1) then
            Inc(Result, aOfs - 1);
    end;

    그럼.. 즐푸..