안녕하세요.. Pdoxuser.lck 파일과 Paradox파일에 대해서 아시는분..도와주세요
아래 코드가 하는일은 DB의 데이타를 파일 서버로 올리는 작업인데요,
DB에서 읽어서 파일에 쓰는중에 험악한 꼴을 당하고 있습니다.
아래 코드를 작성된 소스를 돌리면 실행파일 디렉토리에 위의 두개의 파일이
생기면서 에러메세지가 뜹니다.
"Lock file is growed too large." <-----Error
실행파일이 있는 디렉토리에서 Pdoxuser.lck 의 사이즈를 확인하면 무려 26메가
나 됩니다.우째 이런일이...
문제의 코드 부분은 --------->
SearchQry.close;
SearchQry.SQL.clear;
SearchQry.SQL.Add('Select * From rSynoNym Where head_cd=:head_cd ORDER BY head_cd');
SearchQry.ParamByName('head_cd').AsString := SearchHQry.fieldByName('head_cd').AsString;
SearchQry.open;
<----------------- 여기까지구요.. 여기서 close를 안하면 원할하게 작동됩니다.
이유를 모르겠네요.
아래는 관련 소스부분입니다.
===========================================================================
AssignFile(WriteText, ClientFile);
Rewrite (WriteText);
While (Not SearchHQry.Eof) Do Begin
Inc(CurrCount);
StatusInfo.Panels.Items[1].text := '상위자료 ' + IntToStr(CurrCount) + ' 건';
WriteLn(WriteText, SearchHQry.fieldByName('head_nm').AsString);
SearchQry.close;
SearchQry.SQL.clear;
SearchQry.SQL.Add('Select * From rSynoNym Where head_cd=:head_cd ORDER BY head_cd');
SearchQry.ParamByName('head_cd').AsString := SearchHQry.fieldByName('head_cd').AsString;
SearchQry.open;
SearchQry.First;
While (Not SearchQry.Eof) Do Begin
Inc(CurrCount);
StatusInfo.Panels.Items[1].text := '하위자료 ' + IntToStr(CurrCount) + ' 건';
WriteLn(WriteText, ' '+SearchQry.FieldByName('syn_nm').AsString);
SearchQry.Next;
End;
SearchHQry.Next;
End;
CloseFile(WriteText);
==============================================================================
답변 주신 하얀까마귀님, 유도삼님께 감사드립니다.
문제가 된던 쿼리의 프라퍼티중 cachedUpdates 속성을 false로 줬더니..
잘 도네요.. 오래 속썩은게 이렇게 단순하게 해결되니 ..쩝..
좋은 하루 만드세요~