Q&A

  • Post취소와 abort에 대해..
Table1의 Post를 취소 하기 위해 BeforePost 함수에 Table1.Cancel을 넣으니 그래도 Post가 작동 하더군요.. -_-!

table1.state에는 Cancel 후 Browse 모드로 나오던데, 왜 Post가 계속 작동하는지와

abort를 사용하지 않고 Post를 취소할 방법이 없는 지 먼저 여쭙구요..



두번째.. 위 사항에서 Abort; 를 넣으니 간단히 취소는 되는데..

이 Abort라는 넘을 도움말에서 찾아 보니까, 프린팅시, 기타 등등 여러가지 상황에서 쓰일 수 있는 것 같던데, 테이블도 취소 시키고, 프린트 작업도 취소시키고..

여러가지 작업을 하니까 오히려 이 명령을 사용했을때 어떤 상황을 만들어 내고, 활용범위, 장단점 등 기타 자세하게 알고 싶습니다.



한번에 두가지 질문이라.. 쩝! 조금 귀찮으 시더라도 꼭좀 부탁드립니다.

제가 가진 책에는 못찾는 것인지 나오질 안더라구요..

그럼, 좋은 밤 되세요.

1  COMMENTS
  • Profile
    이성찬 2001.06.28 04:13
    델초짜! wrote:

    > Table1의 Post를 취소 하기 위해 BeforePost 함수에 Table1.Cancel을 넣으니 그래도 Post가 작동 하더군요.. -_-!

    > table1.state에는 Cancel 후 Browse 모드로 나오던데, 왜 Post가 계속 작동하는지와

    > abort를 사용하지 않고 Post를 취소할 방법이 없는 지 먼저 여쭙구요..

    >

    > 두번째.. 위 사항에서 Abort; 를 넣으니 간단히 취소는 되는데..

    > 이 Abort라는 넘을 도움말에서 찾아 보니까, 프린팅시, 기타 등등 여러가지 상황에서 쓰일 수 있는 것 같던데, 테이블도 취소 시키고, 프린트 작업도 취소시키고..

    > 여러가지 작업을 하니까 오히려 이 명령을 사용했을때 어떤 상황을 만들어 내고, 활용범위, 장단점 등 기타 자세하게 알고 싶습니다.

    >

    > 한번에 두가지 질문이라.. 쩝! 조금 귀찮으 시더라도 꼭좀 부탁드립니다.

    > 제가 가진 책에는 못찾는 것인지 나오질 안더라구요..

    > 그럼, 좋은 밤 되세요.



    OnBeforePost 이벤트가 발생했다는 것은 이미 Post 메소드가 호출된 상태입니다.

    그러니 abort 로 중단할 수 밖에 없죠.



    만일 데이타상의 에러처리나 OnPost 이전의 Exception 처리가 목적이시라면

    OnPostError 이벤트에서 다음과 같이 하시는게 좋을듯 싶군요.



    procedure TfrmTest.Table1PostError(DataSet: TDataSet;

    E: EDatabaseError; var Action: TDataAction);

    begin

    DataSet.Cancel;

    Action := daAbort;

    end;