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

FireBird Q&A
[4025] Re:Re:Re:[Q] 데이터 적용시점? 궁금하게 있습니다.
이즈니 [jeju123] 2707 읽음    2011-01-26 11:46
1) SELECT 전에 Close는 하셨나요?

2) iSql 보다는 IBExpert를 많이 사용하다보니 IBExpert에서 테스트를 해보았습니다만,
    갱신된 내용이 잘 보여지는군요.

3) Coding으로 하면,
--------------------------------------------------------------------------------
    1. TSQLConnection - TSimpleDataSet 연결
    2. TSQLConnection - TSQLQuery - TDataSetProvider - TClientDataSet 연결
    3. Zeos 의 TZconnection - TZQuery 연결
    ( 여기서는 1. TSimpleDataSet 연결 )
--------------------------------------------------------------------------------
    SimpleDataSet.Close; // 여기를 빼시면 안된다는 뜻입니다.

    SimpleDataSet.DataSet.CommandText := 'SELECT * FROM 테이블명 ' + ;
                                         'WHERE 조건들... ' + ;
                                         'ORDER BY 정렬필드';

    SimpleDataSet.Open;
    .
    .
    .
    SimpleDataSet.Refresh; // 필요시 갱신
--------------------------------------------------------------------------------

4) '어느 한쪽이라도 commit 을 했다는 것은 해당 테이블을 보고 있는 다른 곳에서는 반영이 되어야 하는 거 아닌가요?'
     : 커밋한 자료는 어디서든 이미 반영된 상태입니다. (같은DB에 같은 Table일테니...)
     : 단, 사용자가 보고있는 내용이 이전에 불러온 내용인가, 갱신된 내용인가가 다를뿐이죠.

그럼... (..) (..) ('') ('')
--------------------------------------------------------------------------------

안명호.ASURADA 님이 쓰신 글 :
: : 변경된 내용을 확인하고 싶으면, SELECT를 다시 해 주던가,
: B isql 에서 확인해 보니 레코드를 확인했다는 것이 SELECT 를 다시 한 것 인데요. 아무리 여러번 해도 A isql 에서 commit 한 내용은 포함되지 않더군요.
:
: : 테이블을 갱신 해줘야 그때 비로소 변경된 테이블 내용을 볼수가 있는거죠.
: 테이블을 갱신은 어떻게 하는 거죠? 그러면 네트웍 작업시 isql 에서는 매번 Query 를 수행하기 전에 테이블을 갱신하는 작업을 해 주어야 하는 건가요?
:
: 어느 한쪽이라도 commit 을 했다는 것은 해당 테이블을 보고 있는 다른 곳에서는 반영이 되어야 하는 거 아닌가요?
:
: 이즈니 님이 쓰신 글 :
: : Ffirebird에서, ( 다른 DBMS도 마찬가지겠지만... )
: :
: : 한쪽에서 추가/수정/삭제등의 작업이 정상적으로 수행되었다 하더라도,
: : 또다른 쪽에서는 기존의 SELECT된 내용을 그대로 유지하고 있어,
: : 변경된 내용을 (자동으로)읽어와 보여주지는 않습니다.
: :
: : 변경된 내용을 확인하고 싶으면, SELECT를 다시 해 주던가,
: : 테이블을 갱신 해줘야 그때 비로소 변경된 테이블 내용을 볼수가 있는거죠.
: :
: : (..) (..) ('') ('') ...
: :
: :
: : 안명호.ASURADA 님이 쓰신 글 :
: : : 하나의 데이터 베이스에 두개의 isql 인스턴스로 접속한 상태에서 테스트를 하였습니다.
: : :
: : : isql 인스턴스(A, B) 가 하나의 데이터베이스(test.fdb) 에서 작업을한 내용 입니다.
: : :
: : : A isql 에서 테이블을 생성하였습니다.
: : :
: : : B isql 에서 SHOW SCHEMA 명령으로 확인해 보니 테이블 구조가 확인 되었습니다. (당연히 A isql 에서 DDL 을 사용하였기에 auto commit 이 되어 그런 것으로 이해가 됩니다.)
: : :
: : : A isql 에서 만들어진 Table 에 1개의 레코드를 삽입하였습니다.
: : :
: : : B isql 에서 확인해 보니 레코드가 하나도 없었습니다. ( A isql 에서 레코드 삽입 후 commit 을 하지 않았기 때문에 그런 것으로 이해하였습니다.)
: : :
: : : A isql 에서 commit 명령을 내렸습니다.
: : :
: : : B isql 에서 레코드를 확인해 보았더나 하나도 없습니다. (이상합니다. 분명히 A isql 에서 작업을 하고 commit 을 했습니다.)
: : :
: : : B isql 을 종료(quit) 후 다시 실행하여 데이터베이스에 연결 후 확인해 보니 추가된 한개의 레코드가 확인 되었습니다.
: : :
: : : A isql 에서 다시 레코드 하나를 더 추가 하였습니다. 그리고 곧바로 commit; 명령을 수행하였습니다.
: : :
: : : B isql 에서 테이블을 확인해 보니 레코드가 하나밖에 없습니다. 바로 직전에 A isql 에서 추가한 레코드가 보이지 않습니다. 왜 그런거죠? (정말 이해가 되지 않습니다.
: : :
: : : B isql 에서 commit 명령을 수행 후 레코드 수를 확인해 보니 추가된 레코드까지 2개의 레코드가 확인 되었습니다.
: : :
: : : 왜? A isql 에서 작업한 내용이 commit 을 했음에도 불구하고 B isql 에서 확인이 되지 않는 것인가요?
: : : 왜? 아무 것도 하지 않은 B isql 에서 commit 명령을 내려야 A isql 에서 작업한 내용이 반영되는 것 일까요?
: : :
: : : 제가 firebird 구조를 잘 몰라서 그러는건지 이 상황이 이해가 되지 않습니다. 이 상황에 대한 설명을 부탁 드립니다.

+ -

관련 글 리스트
4018 [Q] 데이터 적용시점? 궁금하게 있습니다. 안명호.ASURADA 2606 2011/01/24
4031     Re:해답을 찾았습니다.[Q] 데이터 적용시점? 궁금하게 있습니다. 안명호.ASURADA 2859 2011/01/28
4023     Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 멀고도험한길 2605 2011/01/26
4026         Re:Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 안명호.ASURADA 7393 2011/01/26
4029             Re:Re:Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 멀고도험한길 2760 2011/01/26
4021     Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 이즈니 2550 2011/01/25
4022         Re:Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 안명호.ASURADA 2457 2011/01/26
4025             Re:Re:Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 이즈니 2707 2011/01/26
4027                 Re:Re:Re:Re:[Q] 데이터 적용시점? 궁금하게 있습니다. 안명호.ASURADA 2859 2011/01/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.