안녕하세요.
오랜만에 한델에 기웃거리는군요..
프로젝트중에 델파이로 먼가 만들어야 하는데
오랜만에 잡아서 그런지 감이 안오는군요..
오라클 에 연속적인 쿼리를 날렸는데...메모리가 증가하고나서는
해제가 전혀 안되네요...
데먼프로그램인데...하루정도만 돌면 OS 가 미칠라 캅니다..
아래 소습니다..
function DeleteAllTable():boolean;
begin
try
with DM.inQuery do
begin
sql.Clear;
sql.Add('delete TB_MOV');
if Prepared = False then Prepare; <-- 요기서 메모리가 팍증가하고
해제가 안됩니다.
Execsql;
sql.Clear;
UnPrepare;
sql.Add('delete TB_TICKETS');
if Prepared = False then Prepare;
Execsql;
sql.Clear;
UnPrepare;
sql.Add('delete TB_PRICE_LIST');
if Prepared = False then Prepare;
Execsql;
sql.Clear;
UnPrepare;
sql.Add('delete TB_PRICE_GROUP');
if Prepared = False then Prepare;
Execsql;
sql.Clear;
UnPrepare;
sql.Add('delete TB_SSN');
if Prepared = False then Prepare;
Execsql;
sql.Clear;
UnPrepare;
sql.Add('delete TB_RAT_MASTER');
if Prepared = False then Prepare;
Execsql;
sql.Clear;
UnPrepare;
sql.Add('delete TB_SCR_MASTER');
if Prepared = False then Prepare;
Execsql;
UnPrepare;
end;
except on E:EDBEngineError do
begin
DM.Database.Rollback;
DM.inQuery.Close;
end;
end;
DM.inQuery.Close;
DM.inQuery.Free;
result := true;
end;
우쨰된건지 모르겠네요..
그럼 수고하세요....
왜 커밋명령어는 없나요?
아니면 DeleteAllTable함수리턴값에따라서 커밋을 날리는지...
한가지더 궁궁점...
delete할때 조건없이 전체데이타를 삭제하시는것 같은데...
건수가 적나요? 글구 delete from 테이블명 아닌가?
만약에 건수가 많이있다면 drop후 create하는건 어떨지...