먼저 델마당에 올렸던 질문이나 파이어버드 QnA에서 더 만족스런 답변을 얻을 수 있을것 같아 다시 질문올립니다.
[조건]
- 한개의 데이터를 여러 pc가 참조합니다.
- 데이터베이스는 파이어버드2.0입니다.
- 프로그램은 ibdatabase, ibtransaction, ibquery를 사용해서 조회, 입력, 수정, 삭제등의 작업을 하고 있습니다.
[문제점1]
- 위의 조건처럼 한 데이터 베이스를 여러 피씨가 참조하는 경우...
한쪽 pc에서 입력한뒤 다른쪽 pc에서 방금 입력한 자료를 조회해도 나타나지 않습니다.(일반 query는 상관 없다고 합니다. ibquery의 특성인가 봅니다.)
[문제점1에 대한 해결]
- 그래서...조회를 하기전에 ibtransaction.commit을 하도록 하였습니다.
- 일단 결과는 만족입니다. 언제 어떤 pc에서 조회하더라도 입력한 자료가 나타납니다.
[문제점2]
- 그런데... 항상 commit을 사용하니 한 창에 2~3개의 grid를 놓고 작업을 하면 commit하는 순간 모든 grid의 내용이 없어져 버립니다.
- 또, main form위에 sub폼을 열도록 하는경우 sub폼에서 commit을 사용하면 main폼의 grid내용도 없어져 버립니다.
- 그리고, 항상 조회하기전에 commit을 사용하니 이건 뭔가 말도안되는 삽질하는 기분이... 이건 아닌것 같습니다.
[질문]
그러면...
1. 고수님들은 server client 환경의 프로그램을 개발할때 어떤 방식으로 commit처리를 하시는지요?
2. 위의 문제처럼 한 창에 2~3개의 grid를 놓았을때는 또 어떻게 commit처리를 하십니까?
아... 지금이라도 ibquery를 버리고 bde의 query를 사용해야 하는지...
아무리 게시판을 검색해 봐도 위와 비슷한 내용의 질문은 있으나 딱부러진 결과는 없는것 같습니다.
죄송하지만 위와같은 문제점을 해결하셨거나 격어 보셨던 고수님들의 답변 바랍니다.
|