Q&A

  • Paradox Db공유하기
안녕하세요?
질답에서 찾아서 db연결 공유를 하려니 잘 안되서 고민을 하고 있습니다.

제 컴퓨터 A(심 폴더 공유)로 다른 컴을 B 라고 했을
A컴에서 c:\chung\data -> bde에서 alias를 chung으로 하고, (Server역활)
        DbGrid에 table 자료를 표시해 주었습니다.

B컴에서 bde에서 Database-chung-path \\심\chung\data 로 지정하고
                configuration-Drivers-Nativa-pardadox-
                NetDir \\심\chung\data
                System-Init-local share True 로 Alias를 설정했습니다.

그런데, B컴에서 자료를 볼 수는 있지만 추가,수정,삭제를 하면
B컴에는 반영이 되 보이는데 A의 Dbgrid에는 전혀 변화가 없습니다.
A 또는 B의 컴에서 Table에 영향을 주면 바로 Refresh가 되도록 하고 싶습니다.
Timer를 돌려 계속 Open, Close를 해 주니깐 되긴 되는데...
이것이 맞는지 틀리는지 잘 모르겠습니다. 제발 좀 알려 주십니시요 감사합나디.
1  COMMENTS
  • Profile
    심재용 2005.02.22 21:07

    "B컴에 의해 변경된 자료를 A컴에서도 실시간 인식 되어야 한다"

    타이머를 사용하지 않고서는 특별히 대안이 없는 듯 합니다.

    하지만, 타이머를 사용할 경우 코딩이 복잡해 지고, 제어해야 할 부분이 많이 생깁니다. 또한, 실시간 인식을 위해 타이머의 Interval 을 많이 줄이게 되는데 이또한 석연치 않습니다.(증권거래 프로그램이 일정시간 간격으로 정보를 갱신하는 방법으로 쓰이는 경우도 있습니다)


    동시사용자가 다른 유저의 변경내용을 인식후에 자료 변경할수 있는 방법이 필요하다면,

    차선책으로는 B컴의 변경사항을 A컴이 실시간 인식하지는 못하지만,  A컴에서 변경하려는 레코드에대해 변경 바로전에 다른 컴에서 변경이 있었는지 체크하는 방법이 있습니다.  Post를 하기 직전에(SQL문이라면 Insert, Delete 등의 명령 전에) Select 쿼리를 보내서 B컴에서 현재 인식하는 레코드 값이 현재 저장되어있는 값과 일치하는지 비교하는 방법입니다. 비교한후 비교 값이 틀리다면 "다른 사용자에 의해 이미 값이 변경되었습니다."메시지 출력후 저장을 취소시키는 것입니다

    동문서답일지도 모르겠네요 ^^*