안녕하십니까 델가족 여러분
너무도 답답해서 질문을 합니다.
오라클8i를 사용합니다 개발툴은 델파이5 고요
데이타베이스 인스펙터중 트랜솔루션은 tiDirtyRead을 선택 했습니다.
사례1.
데이타를 한건 입력하기전 데이타베이스 스타트트랜잭션을 걸고
한건 입력하면서 데이타베이스 Commit 을 합니다.
그렇게 여러건이 입력되죠...
그러다 사용중인컴(노트북)이 에러를 내면서 다운되면 지금까지 10여분간 입력한
데이타(서버에저장된)가 모두 날아갑니다.
사례2.
현재 서버에 있는데이타를 불러와서 출력작업을 합니다
그런중에 출력하던 컴(노트북)이 에러를 내면서 다운이 됩니다.
그러면 Select해온 데이타(서버에저장된)가 날아갑니다.
고수님들 왜 이런 현상이 발생 될까요...쩝
Delete 명령도 없는데... 왜 에러난다고 데이타가 삭제되고... Select 한데이타가
삭제되고.... 오라클버그인가요?....
계약 끝기게 생겼습니다...
다음은 입력시 코드입니다.
main.DBAmedia.startTransaction;
try
with Datamd.SQLpm do begin
close;
sql.clear;
sql.add('insert into pmdb');
sql.add('(pm_pmyy, pm_pmmm, 중략.. pm_bigo)');
sql.add('values');
sql.add'(:p_pmyy, :p_pmmm, 중략..:p_bigo)');
ParamByName('p_pmyy').asstring := ac_bmyy.text; //년
ParamByName('P_pmmm').asstring := ac_bmmm.text;
중 략...
ParamByName('p_bigo').asstring := Mg_bigo.text;
execsql;
close;
end;
main.DBAmedia.commit;
Except
begin
main.DBAmedia.rollback;
showmessage('입력실패.!');
Exit;
end;
end;
ac_bmyy.SetFocus;
CommitUpdates도 없고요..
Apply는 실재 DB에 write하는 역활을 하고요..
Commit은 섰던 버퍼를 비우는 역활을 합니다.
노트북이 따운된 것은 아무래도
commit을 안해줘서 따운된거 같은데.. (아닐수도 있구요..)
그럼 ..
아폴론 wrote:
> 안녕하십니까 델가족 여러분
>
> 너무도 답답해서 질문을 합니다.
> 오라클8i를 사용합니다 개발툴은 델파이5 고요
> 데이타베이스 인스펙터중 트랜솔루션은 tiDirtyRead을 선택 했습니다.
>
> 사례1.
>
> 데이타를 한건 입력하기전 데이타베이스 스타트트랜잭션을 걸고
> 한건 입력하면서 데이타베이스 Commit 을 합니다.
> 그렇게 여러건이 입력되죠...
> 그러다 사용중인컴(노트북)이 에러를 내면서 다운되면 지금까지 10여분간 입력한
> 데이타(서버에저장된)가 모두 날아갑니다.
>
> 사례2.
> 현재 서버에 있는데이타를 불러와서 출력작업을 합니다
> 그런중에 출력하던 컴(노트북)이 에러를 내면서 다운이 됩니다.
> 그러면 Select해온 데이타(서버에저장된)가 날아갑니다.
>
> 고수님들 왜 이런 현상이 발생 될까요...쩝
> Delete 명령도 없는데... 왜 에러난다고 데이타가 삭제되고... Select 한데이타가
> 삭제되고.... 오라클버그인가요?....
> 계약 끝기게 생겼습니다...
>
> 다음은 입력시 코드입니다.
> main.DBAmedia.startTransaction;
> try
> with Datamd.SQLpm do begin
> close;
> sql.clear;
> sql.add('insert into pmdb');
> sql.add('(pm_pmyy, pm_pmmm, 중략.. pm_bigo)');
> sql.add('values');
> sql.add'(:p_pmyy, :p_pmmm, 중략..:p_bigo)');
> ParamByName('p_pmyy').asstring := ac_bmyy.text; //년
> ParamByName('P_pmmm').asstring := ac_bmmm.text;
> 중 략...
> ParamByName('p_bigo').asstring := Mg_bigo.text;
> execsql;
ApplyUpdates;
> main.DBAmedia.commit;
CommitUpdates;
> close;
> end;
> Except
> begin
> main.DBAmedia.rollback;
> showmessage('입력실패.!');
> Exit;
> end;
> end;
> ac_bmyy.SetFocus;