Q&A

  • 서버에서 키 중복 에러 처리
안녕하세요.

매일 묻기만 하는 까마귀입니다. 도와 주셔서 감사 드립니다.



PK를 Unique를 걸었거든요.

그런데, 만일 똑같은 키를 입력을 했을경우 에러메세지가 뜨잖아요.

그 메세지를 보여주지 않고 바로 처리할수 있는 방법이 없나요?

델파이 4.0 C/S고요, MS SQL 7.0입니다.

중복된 키를 입력을 해서 저장을 하게 되면 먼저 서버에서 키가 중복이 된다고 알려(?)오는데요.

이 메세지를 보여주지 않고 바로 처리할수 있는 방법을 알고 싶어요.

그냥 try...except구문을 쓰니까 그 에러메세지를 먼저 보여주고 나서 확인을 누르면

except 구문을 실행을 하거든요.

원래는 먼저 키 중복이 있는지 먼저 검색을 하려고 했는데, 밑에서 도움을 주신 분들의 의견을 들어보니

너무 비효율적이라고 하고, 저 또한 그런것 같아서 고쳐보려고 합니다.

위처럼 말고 더 좋은 방법이 있으면 알려주시면 감사하겠습니다.

그럼...감사합니다. 꾸벅~~.







위대한 단군혼이 살아있는 나라.... 대한민국

2  COMMENTS
  • Profile
    안경옥 2000.03.29 19:41
    까마귀 wrote:

    > 안녕하세요.

    > 매일 묻기만 하는 까마귀입니다. 도와 주셔서 감사 드립니다.

    >

    > PK를 Unique를 걸었거든요.

    > 그런데, 만일 똑같은 키를 입력을 했을경우 에러메세지가 뜨잖아요.

    > 그 메세지를 보여주지 않고 바로 처리할수 있는 방법이 없나요?

    > 델파이 4.0 C/S고요, MS SQL 7.0입니다.

    > 중복된 키를 입력을 해서 저장을 하게 되면 먼저 서버에서 키가 중복이 된다고 알려(?)오는데요.

    > 이 메세지를 보여주지 않고 바로 처리할수 있는 방법을 알고 싶어요.

    > 그냥 try...except구문을 쓰니까 그 에러메세지를 먼저 보여주고 나서 확인을 누르면

    > except 구문을 실행을 하거든요.

    > 원래는 먼저 키 중복이 있는지 먼저 검색을 하려고 했는데, 밑에서 도움을 주신 분들의 의견을 들어보니

    > 너무 비효율적이라고 하고, 저 또한 그런것 같아서 고쳐보려고 합니다.

    > 위처럼 말고 더 좋은 방법이 있으면 알려주시면 감사하겠습니다.

    > 그럼...감사합니다. 꾸벅~~.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국



    제생각도 그렇습니다.

    먼저 같은 키값을 가진 데이타가 있나를 먼저 select 해보시고..하는게 어떨까요?



    그리고, 저도 며칠전에 알았는데요.

    try-except 를 쓰실때, 에러가 생기면 에러를 보여주고 확인을 눌러야 except 구문을 실행하는데. 에러를 보여주지 않고 바로 except 구문으로 가실려면.

    Tools/Debugger Option 이 있는데 여기서 Language Exceptions 를 보면

    stop on delphi exceptions 가 체크되어 있는데 이것을 false 로 시켜주면 됩니다.



  • Profile
    HART 2000.03.29 18:39
    델파이 버전은 언제 부터지 몰라도 중복키가 에러는 TQuery에 에러 이벤트에서 발생합니다. 방법은 각 에러 이벤트에서 action, updateaction에 dafail라는 값을 입력하면, try..except 문에 에러 메세지가 다시 발생합니다.



    그리고 중복 처리 방법은 저 개인적인 생각으로는 에러 처리 하기 보다는 중복 체크를 먼저 해주는 것이 어떻까 하는데.. 개인적인임..







    까마귀 wrote:

    > 안녕하세요.

    > 매일 묻기만 하는 까마귀입니다. 도와 주셔서 감사 드립니다.

    >

    > PK를 Unique를 걸었거든요.

    > 그런데, 만일 똑같은 키를 입력을 했을경우 에러메세지가 뜨잖아요.

    > 그 메세지를 보여주지 않고 바로 처리할수 있는 방법이 없나요?

    > 델파이 4.0 C/S고요, MS SQL 7.0입니다.

    > 중복된 키를 입력을 해서 저장을 하게 되면 먼저 서버에서 키가 중복이 된다고 알려(?)오는데요.

    > 이 메세지를 보여주지 않고 바로 처리할수 있는 방법을 알고 싶어요.

    > 그냥 try...except구문을 쓰니까 그 에러메세지를 먼저 보여주고 나서 확인을 누르면

    > except 구문을 실행을 하거든요.

    > 원래는 먼저 키 중복이 있는지 먼저 검색을 하려고 했는데, 밑에서 도움을 주신 분들의 의견을 들어보니

    > 너무 비효율적이라고 하고, 저 또한 그런것 같아서 고쳐보려고 합니다.

    > 위처럼 말고 더 좋은 방법이 있으면 알려주시면 감사하겠습니다.

    > 그럼...감사합니다. 꾸벅~~.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국