Q&A

  • DB -> Text화일 저장시 메모리 용량에 때문에 중지됩니다.
안녕하세요..

여기에는 첨 글을 올리네요.



다음과 같은 소스로 약 1700만 레코드이며 약 1.2G Byte로 추정된는 DB에 있는 데이타(Query 결과)를 TEXT 화일에 write 하는데 첨에는 잘되다가 일정 용량이 지나면 '가상 메모리가 부족합니다.' 와 같은 메세지가 나오고는 실행이 중지 됩니다. 약 300메가에서 이 메세지가 나옵니다.



물론 가상 메모리를 키우면 될것이지만 이 프로그램은 저만 사용하는 것이 아니라서 가상 메모리와 관계 없이 작동되게 만들고 싶습니다.



고수들의 조언 부탁합니다.



SOURCE CODE

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

procedure TForm1.BitBtn8Click(Sender: TObject);

Var

F: TextFile;

resultflie,rlstr: String;

fnum,ii: integer;

begin

resultflie := 'test.txt';



AssignFile(F, resultflie);

Rewrite(F);





fnum := qry_temp.Fieldcount; //qry_temp는 TQuery 컴포넌트입니다.



for ii := 0 to fnum-1 do

begin

rlstr := rlstr + '|'+ qry_temp.Fields[ii].FieldName;

end;

rlstr := copy(rlstr,2,length(rlstr));

writeln(F,rlstr);



qry_temp.First;

while NOT qry_temp.EOF Do

BEGIN

rlstr := '';

for ii := 0 to fnum-1 do

begin

rlstr := rlstr + '|'+ qry_temp.Fields[ii].AsString;

end;

rlstr := copy(rlstr,2,length(rlstr));



writeln(F,rlstr);

qry_temp.Next;

End;



CloseFile(F);

End;



0  COMMENTS