Oracle은 과 DB2를 사용하는 프로그램인데요(DB2는 첨임다 - -;;)
Oracle은 TDataBase componet이름을 Database1으로
DB2는 Database2로 각각 사용을 하고 있습니다.
1. 그냥 DB2를 조회할때는 잘 작동하다가
2.
Database2.StartTransaction;
try
.
.
.
Database1.StartTransaction;
try
.
.
.
except
Database1.Rollback;
Database2.Rollback;
exit;
end;
Database1.Commit;
Database2.Commit;
except
if Database2.InTransaction = True then
Database2.Rollback;
if Database1.InTransaction = True then
Database1.Rollback;
end;
2의 작업을 성공하고나서
1의 조회를 하면 "prepared statement 'STMT0002' in use."라는 에러가 납니다.
시간은 없는데 어떻게 해결하나요~~??
database2.starttransaction;
...
...
try
execsql;
database2.commit;
except
database2.rollback;
end;
......
..
요렇게 처리해야 하지 않을까여.
ㅡㅡ;
제가 알기엔 트랜잭션이 시작되었음..
commit이나, rollback중 하나를 만나야 끝이나죠....
님 소스에서 보면..
트랜잭션이 끝나지도 않는데 두번이나 연속해서 실행되니..
ㅡㅡ; 컴파일러가....이거뭐지 라고..
에러 나는거 같은데여..
ㅡㅡ;
pej wrote:
> Oracle은 과 DB2를 사용하는 프로그램인데요(DB2는 첨임다 - -;;)
>
> Oracle은 TDataBase componet이름을 Database1으로
> DB2는 Database2로 각각 사용을 하고 있습니다.
>
> 1. 그냥 DB2를 조회할때는 잘 작동하다가
>
> 2.
> Database2.StartTransaction;
> try
> .
> .
> .
> Database1.StartTransaction;
> try
> .
> .
> .
> except
> Database1.Rollback;
> Database2.Rollback;
> exit;
> end;
>
> Database1.Commit;
> Database2.Commit;
> except
> if Database2.InTransaction = True then
> Database2.Rollback;
> if Database1.InTransaction = True then
> Database1.Rollback;
> end;
>
>
> 2의 작업을 성공하고나서
> 1의 조회를 하면 "prepared statement 'STMT0002' in use."라는 에러가 납니다.
> 시간은 없는데 어떻게 해결하나요~~??
>
>
>