인터베이스/파이어버드에서는 트랜잭션을 커밋하거나 롤백하면 그 트랜잭션에 연결된 쿼리가 닫히는 것이 기본입니다.
IBExpert에서도 동일하게 동작합니다. 이것은 인터베이스/파이어버드에서는 셀렉트도 트랜잭션에 연관되기 때문입니다.
아래 글을 참고하세요.
http://firebird.borlandforum.com/impboard/impboard.dll?action=read&db=fb_qna&no=1586
만약 그게 문제라면.. 그러니까 트랜잭션 커밋이나 롤백 이후에도 쿼리가 열려있어야 한다면, TClientDataSet을 써보는
것도 방법이겠습니다.
아폴론 님이 쓰신 글 :
: 먼저 조회한 IB쿼리 오픈 합니다.
: IBQuery1.open;
:
: if Datamd.IBTransaction1.inTransaction then Datamd.IBTransaction1.rollback;
: -- 요기서 IBQuery1이 닫힙니다.
: Datamd.IBTransaction1.StartTransaction;
: try
: ...
: ...
:
: 테스트-------------------------------------------
:
: if Datamd.TIBDatabase1.Connected = true then
: showmessage('열려있네') else ==>열려있다
: showmessage('닫혀있네');
: if Datamd.IBTransaction1.inTransaction then Datamd.IBTransaction1.rollback;
:
: if Datamd.TIBDatabase1.Connected = true then
: showmessage('열려있네') else ==>열려있다
: showmessage('닫혀있네');
: 데스트 완료-------------------------------------------
: 데이터베이스도 연결이 되어 있는데 왜 IBQuery가 닫히는 것인가요?
|