Q&A

  • 강제 종료시 Paradox디비로 작업한내용 저장이 않되요...
여기 저기 돌아다니면서 찾아봐도 정확한 답변이 없어 직접 문의드립니다.
다름이 아니라 paradox DB를 사용하여 프로그램 작업을 하고 있습니다.

첫번째로
데이터 입력후 중간에 에러 발생으로 프로그램을 강제 종료하면 이전에 입력
한 내용이 전혀 저장이 되어 있지를 않습니다. 물론 POST정확히 했고요.
이유가 무얼 까요?

두번째로
위의 이유는 아무래도 메모리에 계속 저장중이라 메모리가 풀이 되면 발생하
는 문제 인듯 합니다. 이를 해결할 방법은 없나요?

세째로
퀵레포트 사용시 세금계산서 인쇄시 문제 인데요.
먼저 업체 정보, 내역정보를 별도의 Table로 구성하여 사용하다 보니 인쇄시
2개의 Table을 이용 인쇄를 하여야 하는데 제가 디비는 초보라 어떻게 해야
할지를 모르겠군요, 단순히 업체 내역만 인쇄한다면 1개의 Table이므로 아무
문제 없이 작업이 가능하지만 이렇게 2개의 Table을 이용할경우는 어떻게
해야 할까요.

고수님들의 많은 가르치심 부탁 드립니다.
꼭 이요......
4  COMMENTS
  • Profile
    박재용 2002.05.15 19:04
    ^^ 며칠전에도 이런 유사한 질문이 있었는데..

    파라독스는 기본적으로 작업을할때 메모리버퍼에서 작업되는것으로
    알고있습니다.. 프로그램이 정상적으로 종료하기전에 다운된다던지하면
    앞전에 작업하면서 수정하고.. 삭제하고.. 저장하던것들이 전부
    없어져 버립니다.. 물리적으로 저장하기 않았기 때문이죠.. ^^ ;
    그래서 파라독스DB를 사용하시다면..  테이블 or 쿼리의 이번트에 보시면
    AfterPost ,AfterDelete에  
    dbisavechange(테이블쿼리명.Handle) ;
    하시면 됩니다.. ^^;; 몇년전에 로칼프로그램짤때는 참 파라독스 많이
    이용했어요.. ^^ 안전성이 좀 떨어지긴 했어요 ^^ㅋㅋㅋ 공짜니가 ^^;;
    참 unit란에 DbiProcs 추가하세요..


  • Profile
    이성근 2002.05.15 21:22
    답변에 감사 드립니다.

    제가 미처 사용 결과를 말씀드리지 못하였습니다.

    님께서 말씀하시는 dbisavechange함수를 사용하면 정의 되지않았다고
    에러 메세지가 발생을 합니다.
    물론 Unit 에 DbiProcs 추가 하였고요....-|-:;

    나름데로 작업을 해보았는데 아직 해결을 못하고 있습니다.

    다른 방법이 있으시면 답변 부탁 드릴께요... 흐 ~ 흑:;
    참고로 저는 델파이 5.0을 사용 중입니다.

  • Profile
    박재용 2002.05.16 00:37
    켁 죄송합니다...
    USES 란에 BDE를 추가하세여...

    DbiProcs  => 델2까지
    BDE, DB  => 델3이상    
    USES란에 BDE와 DB가 같이 포함되어있어야 에러가 안납니다.. ^^

  • Profile
    김경록 2002.05.15 18:38
    첫번째 문제
       -  이 문제는 POST만 했기 때문입니다..
           POST만 하면.. 실제로 DB에 저장은 되지 않고,
           Cache에 저장되어 있습니다..
           입력된 후에 프로그램을 종료하게되면 그 내용이
           실제 Table에 저장됩니다..
           실제로 저장되게 하실려면..
           commit을 때려야 합니다..
           하지만, Paradox가 Commit을 지원할지는 모르겠네요..
           정확하게 하기 위해서는 UpdateSQL을 Query컴포넌트에
           연결하여 Query.Database.ApplyUpdates([Query]);을
           Query의 AfterPost이벤트에 넣어주면 됩니다..
           그러면, 실시간으로 저장되어 집니다..
           물론, UpdateSQL사용법을 아시리라 봅니다.
           혹시 모르신다면.. UpdateSQL이라고 조회하면
           많은 양이 나올겁니다..

    두번째 문제
       -  이겅.. 이건 첫번째 문제에서 답을 드려뿌렸넹... *^^*

    세번째 문제.
       -  Where절에서 Join을 걸면 되지 않나여?
           select a.*, b.*
             from 거래처마스터Table as a,
                    거래처Detail테이블 as b
          where a.거래처코드 = b.거래처코드
              and b.거래처코드 = 해당하는거래처코드

    답이되셨길..