Q&A

  • Query2.Open 에서 에러났을때 프로그램 다운대신 에러메시지 처리하고 싶으면..??
안녕하세요...



쿼리문을 날려서 DB와 연결해서 프로그램이 실행될때...

DB 서버가 죽어있다면.. 프로그램이 다운되어 버리는데..



그걸 어떻게 다르게, 에러가 발생하면 "서버가 다운되었습니다." 라는

메시지가 나오도록 하게 할려면..



어떻게 해야 합니까???



쿼리문은 아래와 같습니다.



------------------------------



procedure Form1.Show();

begin

Query2.Open;

Query2.Locate('id', loginid, [loCaseInsensitive]);

loginid := Query2.fieldbyname('j_id').asString;



ShowMessage(loginid);

Query2.Close;

end;



------------------------------



3  COMMENTS
  • Profile
    무드게 2000.04.11 06:41
    이수정 wrote:

    > 안녕하세요...

    >

    > 쿼리문을 날려서 DB와 연결해서 프로그램이 실행될때...

    > DB 서버가 죽어있다면.. 프로그램이 다운되어 버리는데..

    >

    > 그걸 어떻게 다르게, 에러가 발생하면 "서버가 다운되었습니다." 라는

    > 메시지가 나오도록 하게 할려면..

    >

    > 어떻게 해야 합니까???

    >

    > 쿼리문은 아래와 같습니다.

    >

    > ------------------------------

    >

    > procedure Form1.Show();

    > begin

    > Query2.Open;

    > Query2.Locate('id', loginid, [loCaseInsensitive]);

    > loginid := Query2.fieldbyname('j_id').asString;

    >

    > ShowMessage(loginid);

    > Query2.Close;

    > end;

    >

    > ------------------------------

    >

    안녕하세여..



    Try.. Except 구문을 사용하면 될것 같군여..



    일반적으로 데이타베이스는 StartTransaction과 Try.. Except 구문을 병행해서 사용하지만.. 그저 단순한 쿼리문의 경우에는..



    Try.. Except 구문만으로도 원하시는 메시지를 다운없이 보여줄 수 있을거 같네여..



    자세히는 못쓰지만.. Try.. Except 구문은 델파이 참고서적이라면 어디든 쉽게 찾을 수 있을 겁니다..



    Ex) Try



    ...쿼리문..



    Flag := 0; //처리됐음을 알리는 플래그 변수..

    Except

    Raise:

    Flag := 1;

    end;



    if Flag = 1 then

    Showmessage('서버가 다운......');



    서투른 답변일지 모르겠습니다만.. 아마 문제 해결은 될것 같네여..



    그럼.. 수고!! (^^#);

  • Profile
    이수정 2000.04.12 13:26
    무드게 wrote:

    > 이수정 wrote:

    > > 안녕하세요...

    > >

    > > 쿼리문을 날려서 DB와 연결해서 프로그램이 실행될때...

    > > DB 서버가 죽어있다면.. 프로그램이 다운되어 버리는데..

    > >

    > > 그걸 어떻게 다르게, 에러가 발생하면 "서버가 다운되었습니다." 라는

    > > 메시지가 나오도록 하게 할려면..

    > >

    > > 어떻게 해야 합니까???

    > >

    > > 쿼리문은 아래와 같습니다.

    > >

    > > ------------------------------

    > >

    > > procedure Form1.Show();

    > > begin

    > > Query2.Open;

    > > Query2.Locate('id', loginid, [loCaseInsensitive]);

    > > loginid := Query2.fieldbyname('j_id').asString;

    > >

    > > ShowMessage(loginid);

    > > Query2.Close;

    > > end;

    > >

    > > ------------------------------

    > >

    > 안녕하세여..

    >

    > Try.. Except 구문을 사용하면 될것 같군여..

    >

    > 일반적으로 데이타베이스는 StartTransaction과 Try.. Except 구문을 병행해서 사용하지만.. 그저 단순한 쿼리문의 경우에는..

    >

    > Try.. Except 구문만으로도 원하시는 메시지를 다운없이 보여줄 수 있을거 같네여..

    >

    > 자세히는 못쓰지만.. Try.. Except 구문은 델파이 참고서적이라면 어디든 쉽게 찾을 수 있을 겁니다..

    >

    > Ex) Try

    >

    > ...쿼리문..

    >

    > Flag := 0; //처리됐음을 알리는 플래그 변수..

    > Except

    > Raise:



    =============> 여기서 "DB가 다운되었으면, Flag=1 로 지정하는거겠죠?

    DB가 다운되었다는 에러 메시지값을 가지고 있는게 뭐죠??

    그걸 알아야 할듯 한데...

    아시는 분 계시면 좀 알려 주세요.. 찾다가 안되서 글씀.. t,t







    > Flag := 1;

    > end;

    >

    > if Flag = 1 then

    > Showmessage('서버가 다운......');

    >

    > 서투른 답변일지 모르겠습니다만.. 아마 문제 해결은 될것 같네여..

    >

    > 그럼.. 수고!! (^^#);



  • Profile
    무드게 2000.04.13 02:34
    이수정 wrote:

    > 무드게 wrote:

    > > 이수정 wrote:

    > > > 안녕하세요...

    > > >

    > > > 쿼리문을 날려서 DB와 연결해서 프로그램이 실행될때...

    > > > DB 서버가 죽어있다면.. 프로그램이 다운되어 버리는데..

    > > >

    > > > 그걸 어떻게 다르게, 에러가 발생하면 "서버가 다운되었습니다." 라는

    > > > 메시지가 나오도록 하게 할려면..

    > > >

    > > > 어떻게 해야 합니까???

    > > >

    > > > 쿼리문은 아래와 같습니다.

    > > >

    > > > ------------------------------

    > > >

    > > > procedure Form1.Show();

    > > > begin

    > > > Query2.Open;

    > > > Query2.Locate('id', loginid, [loCaseInsensitive]);

    > > > loginid := Query2.fieldbyname('j_id').asString;

    > > >

    > > > ShowMessage(loginid);

    > > > Query2.Close;

    > > > end;

    > > >

    > > > ------------------------------

    > > >

    > > 안녕하세여..

    > >

    > > Try.. Except 구문을 사용하면 될것 같군여..

    > >

    > > 일반적으로 데이타베이스는 StartTransaction과 Try.. Except 구문을 병행해서 사용하지만.. 그저 단순한 쿼리문의 경우에는..

    > >

    > > Try.. Except 구문만으로도 원하시는 메시지를 다운없이 보여줄 수 있을거 같네여..

    > >

    > > 자세히는 못쓰지만.. Try.. Except 구문은 델파이 참고서적이라면 어디든 쉽게 찾을 수 있을 겁니다..

    > >

    > > Ex) Try

    > >

    > > ...쿼리문..

    > >

    > > Flag := 0; //처리됐음을 알리는 플래그 변수..

    > > Except

    > > Raise:

    >

    > =============> 여기서 "DB가 다운되었으면, Flag=1 로 지정하는거겠죠?

    > DB가 다운되었다는 에러 메시지값을 가지고 있는게 뭐죠??

    > 그걸 알아야 할듯 한데...

    > 아시는 분 계시면 좀 알려 주세요.. 찾다가 안되서 글씀.. t,t

    >

    >

    >

    > > Flag := 1; ---------------->> 이게 다운되었다는 에러 메시지 값이져..

    > > end;

    > >

    > > if Flag = 1 then

    > > Showmessage('서버가 다운......'); -------->> 여기서 메시지는 따로 뿌려주구여..

    > >

    > > 서투른 답변일지 모르겠습니다만.. 아마 문제 해결은 될것 같네여..

    > >

    > > 그럼.. 수고!! (^^#);

    >