Q&A

  • DB 에러처리 방법좀...
퍼즐 프로그램을 짜려고 하는데, 입력상태를 받아들여 그 상태에 도달할때 까지

자동으로 다음 상태를 생성해 DB에 상태정보를 저장하려고 합니다. 이미 상태가 테이블에 존재하면 그냥 넘기려고 다음 상태를 만들어 가는 함수 실행마다 locate 문을 써서 없을 경우에만 저장을 하다보니 자료수가 10000가지가 넘어 속도가 너무 느려지더군요.

상태 필드를 key 로 잡고 key violation이 발생했을때 단순히 저장을 취소하고

프로그램의 종료 없이 다음 연산(다음 상태의 저장) 작업을 계속 하고 싶은데 방법이 없을까요?



어디선가 ErrorCode를 1로 바꾸고 exit 로 나가는 방법을 본거 같은데

기억이 안나는군요.. 아시는분 좀 가르쳐 주세요..^^ 부탁~~~

1  COMMENTS
  • Profile
    1999.05.27 23:28
    임성학 께서 말씀하시기를...

    > 퍼즐 프로그램을 짜려고 하는데, 입력상태를 받아들여 그 상태에 도달할때 까지

    > 자동으로 다음 상태를 생성해 DB에 상태정보를 저장하려고 합니다. 이미 상태가 테이블에 존재하면 그냥 넘기려고 다음 상태를 만들어 가는 함수 실행마다 locate 문을 써서 없을 경우에만 저장을 하다보니 자료수가 10000가지가 넘어 속도가 너무 느려지더군요.

    > 상태 필드를 key 로 잡고 key violation이 발생했을때 단순히 저장을 취소하고

    > 프로그램의 종료 없이 다음 연산(다음 상태의 저장) 작업을 계속 하고 싶은데 방법이 없을까요?

    >

    > 어디선가 ErrorCode를 1로 바꾸고 exit 로 나가는 방법을 본거 같은데

    > 기억이 안나는군요.. 아시는분 좀 가르쳐 주세요..^^ 부탁~~~





    음냐...



    에러처리입니다.



    try

    post; //또는 다른 처리 ex) execsql; Insert; Edit; Delete;

    except

    on E:EDatabaseError do

    begin

    MessageDlg(E.Message, mtError, [mbOk], 0);

    Cancel;

    end;

    end;



    이렇게 하시면 되죠....

    try 에서 에러가 날 경우만 except 다음 문으로 갑니다.



    try

    //명령

    finally

    //명령

    end;

    가 있는데 이건 에러가 나든 안나든 반드시 finally문을 실행합니다.



    그럼.