Q&A

  • Access Violation 에러
Q&A 게시판에서 검색해봤는데도 도저히 모르겠어서요...



제가 갖고 있는 프로그램은 NMHTTP를 썼구요.

델파이에서 아파치 서버로 쿼리를 넘긴 후(NMHTTP.Post이용), 아파치 서버에서 데이터베이스 서버로 다시 쿼리를 넘깁니다. 결과값은 그 반대로 가져오구요.



간단한 쿼리는 결과값을 제대로 가져옵니다.

문제는 엄청 오래 걸리는 쿼리인데요...



델파이 소스에서 NMHTTP.TimeOut을 이용하면, Socket readln error가 나구요.

NMHTTP.TimeOut을 빼면 돌아가는 듯 하다가, Access violation address 에러가 뜹니다.



처음에 오래걸리는 쿼리의 경우에는 아파치 서버의 타임아웃에 걸려서 제대로 값이 안돌아 오는 것 같아, 아파치 서버의 타임아웃을 무한대로 설정했는데도 계속 그 에러가 뜨네요.



우선 Access violation address를 없애는 방법...

만일 타임아웃때문에 값을 못가져왔다면 델파이 쪽에서 서버(데이터베이스 서버)로의 연결을 끊어주는 방법....



각각에 대한 증상, 원인, 치료방법을 아시는 고수님들~~~



사소한 거라도 조으니 마니마니 답해주세요~~~



좋은 하루 되시구요..^^

2  COMMENTS
  • Profile
    텃밭 2001.09.07 03:08
    try

    except

    end 문을 써 보세요..

    procedure TForm1.SpeedByutton1onClick(Sender: TObject);

    var

    s : string;

    begin

    try

    http.post('www.naver.com', '');

    s := http.Body;

    except

    end;

    이렇해 하시면 에러가 나지 않을겁니다.

    timeout이 발생해도 에러 예외처리를 하고 넘어간답니다.



  • Profile
    mina 2001.09.07 19:35
    너무 감사합니다.

    try를 쓰니까 정말 Access Violation 에러가 안뜨네요.



    그런데, 한가지 더 여쭤보자면...

    연결되어 오래 걸리는 쿼리가 데이터베이스 서버쪽에서는 계속 돌거든요.

    델파이 인터페이스 쪽에서는 disconnect 하는 것 같은데요...



    델파이 쪽에서 데이터베이스 서버의 세션을 강제로 끊어줄 수 있는 방법은 없을까요?

    아파치 서버나 데이터베이스 서버에서 작업을 해줘야 하나요?



    아신다면 답변 또 부탁드릴께여~~ ^^

    좋은 하루 되세요~