firebird를 직접 써보지 않아서 모르겠지만,
아마도 isolation 관련 문제 같아 보입니다.
데이터를 insert, delete 하는 쪽에서 작업 완료 후 commit 명령을 직접 실행해보세요.
아니면 connection에서, 이 경우에는 zeoslib의 connection, 아마 zeosconnection 컴포넌트가 될 것 같은데요,
이 것의 isolation을 양쪽 다, dirtyread 같은 것으로 변경해보시기 바랍니다.
저는 isolation을 readcommited로 두고, 데이터를 삽입, 수정, 삭제하는 쪽에서 작업 후 commit 하는 것,
tranjaction 처리를 제대로 하는 쪽을 추천합니다.
도움이 되었으면 좋겠네요.
즐프 님이 쓰신 글 :
: 서버, 클라이언트 프로그램을 만들고 있습니다.
: 델파이와 zeoslib입니다.
:
: 예를 들어서
: 클라이언트 2대가 서버에 연결되어 있다고 할때
:
: 클라이언트A가 DB를 추가(insert) 나 삭제(delete)를 하게 되면,
:
: 클라이언트B가 검색시 클라이언트A가 추가나 삭제한 데이터를, 실시간? 보여야 하는데
:
: 클라이언트B에는 Select * from 해보면 그냥 그대로, 변화가 전혀 는것처럼 보입니다..
: DB를 한쪽에서 수정을 분명히 했는데, 상대방은 수정을 했는지 삭제를 했는지 . 전혀 변화가 없습다.
: 상대방 B는 프로그램을 완전히 종료한 후에 다시 프로그램을 실행을 해야 , 변화된 DB가 보입니다..
:
: 어떻게 해야 실시간으로 검색할 수 있는 방법이 있을까요? DB가 서로 겹쳐질까봐.. 그럽니다..
|