FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[1896] 트랜잭션 처리는 이미 했습니다.
박성훈 [] 1807 읽음    2006-04-05 09:19
박지훈.임프 님이 쓰신 글 :
: 아마도..
: create table 문을 실행시킨 후에 커밋을 안해줘서 그럴 겁니다. ^^
: IBX는 트랜잭션에 대단히 민감하거든요.
: 바로 그게 제가 IBX를 쓰다가 짜증나서 DBX로 바꾼 이유입니다.
:
:
: KRPOT 님이 쓰신 글 :
: : FireBird2.0 + Delphi6.0 + IBX 로 작업 중입니다.
: :
: : 작업 중에 한가지 의문이 있어 질문 드립니다.
: :
: : 집계를 위해 년월에 해당하는 table을 동적으로 생성을 하는 루틴이 있습니다. 그런데 테이블을 생성하는 코드가 성공적으로 수행된 뒤에 생성된 table에 data를 집어넣는 코드를 실행하게 되면 'Table unknown'이 떨어지네요. 그런데  바로 앞에서 테이블 유무검사를 하게 되면 있는 것으로 나오네요.
: :
: : 테이블 존재 유무 검사하는 코드는 이거구요.
: : SELECT COUNT(rdb$relation_name) FROM rdb$relations
: : WHERE rdb$system_flag=0
: :      AND rdb$relation_name =''TB_IPKUM_2000602'
: :
: : 이상해서 data insert하는 부분 직전까지 실행을 하니 테이블이 정상적으로 생성됩니다.
: :  table을 drop 하거나 하는 코드는 절대로 없구요...
: :
: : 아시는 분 답변 좀 부탁드립니다.

먼저 답변 감사드립니다.

그럴 것 같아서 테이블 생성하는 부분에서 트랜잭션 처리를 했습니다. 트랜잭션 처리시에는 트랜잭션 상태를 체크했구요. 디버깅해보면 분명히 commit까지 완료됩니다.

그런데 한가지 더 말씀드릴 것이 있다면 똑같은 IBX를 가지고 SQL을 처리하는 부분을 class화 시켜서 object를 생성한 다음 똑같은 코드를 실행하면 이 때는 정상적으로 create 됩니다. 에러를 떨군 코드는 DataModule 쪽에 public으로 함수 선언을 한 것이구요. 어디가 잘못된 것일까요?

+ -

관련 글 리스트
1893 FireBird2.0 에서 동적으로 Table 생성시 오류 발생. KRPOT 1754 2006/04/04
1894     Re:FireBird2.0 에서 동적으로 Table 생성시 오류 발생. 박지훈.임프 1902 2006/04/05
1896         트랜잭션 처리는 이미 했습니다. 박성훈 1807 2006/04/05
1897             Re:트랜잭션 처리는 이미 했습니다. 박지훈.임프 1798 2006/04/05
1921                 Re:Re:다시 확인해 보니 코딩상의 실수였습니다.감사합니다.(냉무) 박성훈 1745 2006/04/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.