Q&A

  • Transaction처리에 Error...
안녕하십니까

저는 현재 MIS Project를 수행하고 있는 김정식이라합니다.



이곳에서 많은 도움을 받고있습니다.

이제나마 여러분께 감사를 드립니다.



그런데 Transaction처리에 미숙해서인지 다음과 같은 문제가 있어서...

참고로 사용환경은 AS/400 , DB2 , Delphi5.0 , Delphi/400 입니다.



procedure TForm1.FormActivate(Sender: TObject);

begin

Database1.Connected := true;

Table1.Open;

end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Table1.Close;

Database1.Connected := false;

end;



procedure TForm1.Button1Click(Sender: TObject);

var

TranYesNo : Boolean ;

i : integer;

begin

DataBase1.StartTransaction ;

TranYesNo := True ;

for i := 0 to 99 do

begin

try

with Table1 do

begin

Insert;

fieldbyname('PTNODNO').Value := 'KO00NI999';

fieldbyname('PTNPDCD').Value := 'ATLAN-TU';

fieldbyname('PTNODSEQ').Value := 1;

fieldbyname('PTNSEQ').Value := i;

Post;

end ; //query end

except

TranYesNo := false ;

Break ;

end ; // try end

end ; // for end



if TranYesNo = true then DataBase1.Commit

else DataBase1.RollBack ;

end;



이와같이 기술하였는데

StartTransaction 부분에서

'No user transaction is currentry in progress.'

이런 Error가 발생합니다.

어떤부분이 잘못 기술된 것인지

방법을 알려주시면 감사하겠습니다.

1  COMMENTS
  • Profile
    이만준 2000.05.12 01:36


    안녕하세요..



    AS/400 에서는 테이블에 저널이 걸려있어야

    트랜잭션 처리가 가능합니다.



    그럼.





    김정식 wrote:

    > 안녕하십니까

    > 저는 현재 MIS Project를 수행하고 있는 김정식이라합니다.

    >

    > 이곳에서 많은 도움을 받고있습니다.

    > 이제나마 여러분께 감사를 드립니다.

    >

    > 그런데 Transaction처리에 미숙해서인지 다음과 같은 문제가 있어서...

    > 참고로 사용환경은 AS/400 , DB2 , Delphi5.0 , Delphi/400 입니다.

    >

    > procedure TForm1.FormActivate(Sender: TObject);

    > begin

    > Database1.Connected := true;

    > Table1.Open;

    > end;

    >

    > procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

    > begin

    > Table1.Close;

    > Database1.Connected := false;

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > TranYesNo : Boolean ;

    > i : integer;

    > begin

    > DataBase1.StartTransaction ;

    > TranYesNo := True ;

    > for i := 0 to 99 do

    > begin

    > try

    > with Table1 do

    > begin

    > Insert;

    > fieldbyname('PTNODNO').Value := 'KO00NI999';

    > fieldbyname('PTNPDCD').Value := 'ATLAN-TU';

    > fieldbyname('PTNODSEQ').Value := 1;

    > fieldbyname('PTNSEQ').Value := i;

    > Post;

    > end ; //query end

    > except

    > TranYesNo := false ;

    > Break ;

    > end ; // try end

    > end ; // for end

    >

    > if TranYesNo = true then DataBase1.Commit

    > else DataBase1.RollBack ;

    > end;

    >

    > 이와같이 기술하였는데

    > StartTransaction 부분에서

    > 'No user transaction is currentry in progress.'

    > 이런 Error가 발생합니다.

    > 어떤부분이 잘못 기술된 것인지

    > 방법을 알려주시면 감사하겠습니다.