안녕하세요..
여기에는 첨 글을 올리네요.
다음과 같은 소스로 약 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;