Q&A

  • 파라독스7에서 트랜잭션은 어떻게...
안녕하세요



이전 SubQuery 답변 이재식, 구관중님께 감사드립니다.



이번엔 파라독스에서 Transaction 처리를 해야하는데, 에러가 발생합니다.

품목코드 테이블에서 코드변경시 거래내역과 명세발행내역의 코드도

같이 바꿔야 하는 상황입니다.



Error Message: The transaction isolation level must be dirty read form local databases.



코드는 다음과 같습니다.



DM.Database1.StartTransaction;



try

with Query1 do

begin

Close;

SQL.Clear; // 품목코드

SQL.Add('update TAB1 set item_cd = :Parm1 where item_cd = :Parm2');

Params[0].AsString := Edit1.Text;

Params[1].AsString := StaticText1.Caption;

ExecSQL;



Close;

SQL.Clear; // 거래내역

SQL.Add('update TAB2 set item_cd = :Parm1 where item_cd = :Parm2');

Params[0].AsString := Edit1.Text;

Params[1].AsString := StaticText1.Caption;

ExecSQL;



Close;

SQL.Clear; // 명세발행내역

SQL.Add('update TAB3 set item_cd = :Parm1 where item_cd = :Parm2');

Params[0].AsString := Edit1.Text;

Params[1].AsString := StaticText1.Caption;

ExecSQL;



DM.Database1.Commit;

end;



Application.MessageBox(PChar('작업이 완료되었습니다.'), PChar('알림'), MB_ICONINFORMATION or MB_OK);

except

DM.Database1.Rollback;

Application.MessageBox(PChar('작업중 오류가 발생하여 취소되었습니다.'), PChar('오류'), MB_ICONSTOP or MB_OK);

end;

0  COMMENTS