안녕하십니까
저는 현재 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가 발생합니다.
어떤부분이 잘못 기술된 것인지
방법을 알려주시면 감사하겠습니다.
안녕하세요..
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가 발생합니다.
> 어떤부분이 잘못 기술된 것인지
> 방법을 알려주시면 감사하겠습니다.