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

FireBird FAQ
[68] 아래 Firebird 갱신, Commit, Rollback 에 대하여
브리오 [egsuh] 22732 읽음    2012-08-30 16:23
저도 처음에 SQL DB를 쓰면서 많이 혼동했던 부분인데, 제 나름대로 다음과 같이 정리하고 있습니다. 혹시 틀렸으면, 정확하게 알려 주시기 바랍니다.

Interbase (Firebird도 마찬가지겠지만) 를 Delphi 등에서 사용하면 기본적으로 3-tier로 구성된다고 개념적으로 생각해야 논리적으로 맞아집니다. 

즉,  아래 그림의 C 에서 요청이 있으면, 처음에는 A,B,C의 순으로 데이터가 전달됩니다.  그런 다음 데이터 저장의 경우는 반대로 C, B, A 순으로 저장이 되겠죠. 그런데 저장은 각각 명령이 있어야 합니다.

 
                         A.                                                             B.                                                                    C.
                   Physical DB                                       서버상의 COPY본?                                           응용 프로그램의 Client
              (HDD 에 있는 파일)   -------------->   사용자가 요청한 내용  -------------------->    TTable, IBQuery 등
                                                                                                                                                    응용프로그램 상의 Copy 본


                 이 파일을 변경   <-- commit / rollback --      여기 반영         <--  post   ----    DBGrid 등 Visual control  에서 수정


이런 고민을 하게 된 이유는 table 에 입력이나 수정 후 "post" 명령이 있기 때문인데요, Paradox 등 local DB의 경우 post만 실행하면 바로 DB 자체가 수정됩니다. 그런데 ib 의 경우 post 를 하고도 commit 을 하지 않으면 나중에 수정한 데이터가 반영되어 있지 않습니다. 그래서 위와 같이 자체적으로 3-tier 가 형성되는 것으로 생각하고 작업을 합니다.

혹시라도 잘못 이해한 것이 있으면 바로 알려 주시기 바랍니다. 초기에 저와 같은 고생을 하시지 않도록, 제 경험을 알려 드립니다.

아 그리고 commit 이나 rollback을 하더라도 오픈되어 있는데이터셋이 닫히지 않게 하는 건, commitretaining / rollbackretaining 이라는 명령이 있는데, 많이 써 보진 않아서 아래 경우에 어떻게 적용할지는 테스트를 해 봐야 알 듯 합니다.  누가 해 보시고 알려 주시길... ^^  지금 당장은 이 쪽에 집중할 수 없는 처지라.
박지훈.임프 [cbuilder]   2012-09-03 12:20 X
CommitRetaining이라, 그걸 생각을 못했네요.
좋은 글 감사합니다~

+ -

관련 글 리스트
68 아래 Firebird 갱신, Commit, Rollback 에 대하여 브리오 22732 2012-08-30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.