Q&A

  • EDBEngineError에서 오라클의 에러코드값 가져오는법??


except on E: EDBEngineError do 에서 자료가 중복되었을때 에러코드값을 가져오려고

하는데 e.Errors[0].ErrorCode 이렇게 하면 에러코드를 가져옵니다.

그리고 e.Errors[1].ErrorCode 이렇게 해도 에러코드를 가져옵니다.

궁금한건 인덱스 0,1에 따라서 나오는 코드값은 뭘 의미하는지... 차이가 뭔지 궁금합니다.

그리고 중복되었을때 에러코드값을 가져오려면 0 또는 1번중 어느코드값을 써야하나요?

다른곳을 보면 0,1번등의 코드값을 전부 더해서 하는곳도 있던데 좀 가르켜 주십시오..

그럼 수고하세요..



1  COMMENTS
  • Profile
    홍성락 2001.12.26 20:10
    초보 wrote:

    >

    > except on E: EDBEngineError do 에서 자료가 중복되었을때 에러코드값을 가져오려고

    > 하는데 e.Errors[0].ErrorCode 이렇게 하면 에러코드를 가져옵니다.

    > 그리고 e.Errors[1].ErrorCode 이렇게 해도 에러코드를 가져옵니다.

    > 궁금한건 인덱스 0,1에 따라서 나오는 코드값은 뭘 의미하는지... 차이가 뭔지 궁금합니다.

    > 그리고 중복되었을때 에러코드값을 가져오려면 0 또는 1번중 어느코드값을 써야하나요?

    > 다른곳을 보면 0,1번등의 코드값을 전부 더해서 하는곳도 있던데 좀 가르켜 주십시오..

    > 그럼 수고하세요..

    //////////////////////////////////////////////////////////////////////////

    에러 코드를 가져오는것은 0,1뿐만아니라 수행과정 발생하는 모든것을 가져옵니다.

    E.ErrorCount 개수만큼요.

    그 개수만큼의 에러번호를 모두 체크해서 검색하려는 에러코드를 찾아내는 방법도 있지만 통상 중대한 문법에러가아닌 insert시 중복에러는 0,1등 앞부분에 에러번호를 우선순위안에 가져옵니다.

    모든 에러개수만큼 검색하는 방법이 정확할수있으나, 중복 또는 입력오류코드가 통상 0번아니면1번에 오므로 둘을 더하는 방법도 있지만, 0번만 체크하는 방법도 있습니다.

    if (13059 = e.Errors[0].ErrorCode) or (9729 = e.Errors[0].ErrorCode) then ....