FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird 팁&트릭
[11] IBX504 사용시 경험담
유도삼 [udosam] 6286 읽음    2004-06-11 13:06
IBX를 사용하면서 겪었던 황당한 부분을 적을려고 합니다.
사실 이것이 팁은 아닙니다. 단지 미리 알면 조금 도움이 될까 해서 남깁니다.
환경은 Delphi5, IBX504, Firebird1.5입니다.

어젯밤 한숨도 못자고 델파이와 씨름을 했습니다.
이유인즉, 다음과 같은 구문에서 'Out of memory'에러가 나는 것이었습니다.
qryTest.First;
while not qryTest.EOF do begin
  StringGrid에 기록...

  qryTest.Next;
end;
조회되는 데이터는 약 10만건 이상이고 쿼리는 내용이 조금 복잡합니다.
아마도 StringGrid가 메모리 관리에 문제가 있을거라 생각하고
StringGrid관련 루틴을 10가지도 넘게 바꿔서 테스트를 했습니다.
그런데 결과는 마찬가지더라구요... 물론 메모리도 열심히 봤죠.(별 문제점을 찾지 못했습니다.)
이때부터 저는 미치는 줄 알었습니다. 날은 밝아서 프로그램은 업데이트 해 주어야 하는데...
이때 한가지 생각이 떠올랐습니다. 전에도 IBX를 사용하면서 황당한 일이 몇번 있었거든요.
그때는 그저 내가 IBX에 대해 모르는게 많구나 생각하고 모든 꽁수를 활용해 해결을 했었거든요.
그런데 이번에는 꽁수도 안먹히더라구요. 사실 꽁수가 있을 턱이 있나요?(이 간단한 루틴에서...)
그래서 한줄을 추가했습니다. 다음처럼요.
qryTest.FetchAll;//추가
qryTest.First;
while not qryTest.EOF do begin
  StringGrid에 기록...

  qryTest.Next;
end;
결과는 에러가 안나더군요. 황당했습니다.
아마도 IBX504의 문제인듯 합니다.(데이터가 적으면 관계 없습니다.)

하나 더 덧붙이자면
저는 속도를 위해 IBQuery컴포넌트보다는 IBSQL컴포넌트를 주로 사용하는데
IBQuery에서는 되는 쿼리가 IBSQL에서는 안되는 경우가 종종 있습니다.
특히 서브쿼리에서 파라미터를 받아들일 때 엉뚱하게 되는 경우가 있습니다.
그래서 저는 아예 쿼리문 자체를 파라미터가 필요없도록 만들어서 사용하고 있습니다.

혹 Delphi6 이나 7의 IBX에서는 이상 없을 수도 있을 것 같습니다.
이성호 [shlee0613]   2004-06-17 09:55 X
저는 델파이6 사용하는데요. 마찬가지 입니다.
제 프로그램 기능중에 데이터를 엑셀파일로 만들어 주는 기능이 있는데요.
여기서 next하면 메모리가 계속증가 하다가 결국엔 Out of memory를 발생시키더군요.
아마 IBX의 오류인듯합니다. 어째든 FetchAll하면 된다니 좋은 정보 얻었네요.
유도삼 [udosam]   2004-06-22 01:34 X
혹시나 해서 IBExpert에서 대략 20만건의 레코드를 가지고 테스트 해 봤는데
Out of memory가 발생하더군요.
IBExpert는 FIBPlus로 만들어진 것으로 알고 있는데(맞나?)
결국 FIBPlus도 IBX처럼 동일한 문제가 있는 것 같네요.
IBConsole도 마찬가지인데
(시간상 에러가 날때까지 못 기다렸지만 메모리사용률이 계속 올라가는 것으로 봐서...)
BDE는 에러가 나지 않습니다.(SQL Explorer)
혹 DBExpress나 기타 접속에서의 테스트 결과를 올려주실 분 계신가요?
이성호 [shlee0613]   2004-06-22 14:44 X
DBExpress는 오류 발생안합니다. 그리고, IBExpert가 FIBPlus로 만들어진거 맞나요?
아는분 대답부탁해요.

+ -

관련 글 리스트
11 IBX504 사용시 경험담 유도삼 6286 2004/06/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.