답변 감사드립니다
제가 여러가지로 테스트해본 결과 트랜젝션의
Defaultaction = TACommit,
AutoStopAction = saNone,
Params= read_committed, rec_version, nowait
로 설정되어있는 상태로 테이블생성시 Tranaaction.CommitRetaining로 생성하여 사용한후에 FormClose 에서
Drop Table 후 Tranaaction.CommitRetaining 하면 unsuccessful metadata update object table이름 is in use 라는 메세지가 발생 하였습니다. 그러나 Tranaaction.Commit 하면(해당 트랜젝션의 모든 데이타는 닫힘- 다시 열어 줘야함)) 에러메세지 출력없이 테이블이 삭제가 되더군요.
일단 에러 메세지없이 테이블삭제든 했는데 1,5에서는 나지않던에러가 2.1에서는 에러가나는 이유를 모르겠습니다.
삽질 님이 쓰신 글 :
: 아마 제 경험에 비춰 본다면, 다른 Connection이 연결되어 있거나
: 또는 transaction이 완료되지 않은 상태일 것으로 추정됩니다.
:
: 저도 아직 Firebird에 대해서는 아는 바가 일천해서 정확하게 설명은 못드리겠습니다만,
: 대략 두 가지 특이한 현상이 있었습니다.
:
: 1. Drop Table 의 경우
: 다른 Connection이 해당 Database로 연결되어 있다면 님과 같은 에러메시지가
: 출력되고 실패했습니다.
:
: 2. Create Table의 경우
: 다른 Connection이 해당 Database로 연결되어 있다고 하더라도 그 Connection이
: reconnect를 하기 전까지는 새로 생성된 table의 존재를 인식하지 못했습니다.
:
: 제가 잘못 알고 있는 것인지, 또는 다른 방법으로 위 문제를 해결할 수 있는 것인지는
: 고수님들의 답변 부탁드리겠습니다.
:
: _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
:
: Knock 님이 쓰신 글 :
: : 환경: firebird 2.1, bds2006, IBDatabase, IBTransaction
: :
: : firebird 1.5 사용시에는 안나던 에러가 fire 2.1로 업그레이드후 에러가 납니다
: : 동적으로 테이블을 생성해서 사용하고 Drop Table을 하면
: : unsuccessful metadata update object table이름 is in use 라는 메세지가 뜹니다
: : 해결방법을 아시는분 답변부탁드리겠습니다.
|