Q&A

  • 이에러가 무슨뜻이죠? 'Name Is Not Unique on this Context'
if database1.Connected = FALSE then

database1.Connected := TRUE;



database1.StartTransaction;

...







Database1은 데이터 모듈을 이용해 작성하고, 실행시에 Connected를 TRUE로 설정하고, keepconnection을 TRUE로 설정한 상태입니다.

근데, application 실행중에 Query를 이용하여 Insert를 하려 했더니, 저 위의if절에서 Connected 가 FALSE로 나오더군요, 그래서 그 다음행에서 Connected를 TRUE로 설정했더니

'Name not unique on this context'라는 에러가 발생합니다.



그래서,

database1.Connected := FLASE;

database1.Connected := TRUE;

이렇게 False로 했다가 True로 해도 같은 에러가 뜨는 군요.





또한, if 절을 없애고, 바로 database1.StartTransaction 을 실행시키면, Database do not Perform on Closed DataSet이라는 에러가 발생하네요..



DataModule로 작성해서 application 실행시에 Connected를 TRue로 하고, KeepConnection 을 TRUE로 설정했는데.. 왜 RunTime시에 Connected 속성이 FALSE로 나오고, 왜 이런 에러들이 발생하는지 이해가 안갑니다.



왜그런건지 조언 부탁드립니다.



1  COMMENTS
  • Profile
    김지엽 2001.11.25 02:30
    구체적인 상황을 몰라서 정확한 답변을 드릴 수는 없지만, 'Name is not unique ..' 운운하는 에러는 고유값을 가져야 하는 키 필드에, 이미 존재하는 값과 중복되는 값이 입력되려고 할 때 발생하는 예외입니다.



    즉, 만약 주민등록번호를 키필드로 하는 테이블에서, 하나의 주민등록번호가 이미 등록되어 있는데 다시 똑같은 주민등록번호로 레코드를 추가하려고 하면 발생하는 에러라는 거죠.



    훈 wrote:

    > if database1.Connected = FALSE then

    > database1.Connected := TRUE;

    >

    > database1.StartTransaction;

    > ...

    >

    >

    >

    > Database1은 데이터 모듈을 이용해 작성하고, 실행시에 Connected를 TRUE로 설정하고, keepconnection을 TRUE로 설정한 상태입니다.

    > 근데, application 실행중에 Query를 이용하여 Insert를 하려 했더니, 저 위의if절에서 Connected 가 FALSE로 나오더군요, 그래서 그 다음행에서 Connected를 TRUE로 설정했더니

    > 'Name not unique on this context'라는 에러가 발생합니다.

    >

    > 그래서,

    > database1.Connected := FLASE;

    > database1.Connected := TRUE;

    > 이렇게 False로 했다가 True로 해도 같은 에러가 뜨는 군요.

    >

    >

    > 또한, if 절을 없애고, 바로 database1.StartTransaction 을 실행시키면, Database do not Perform on Closed DataSet이라는 에러가 발생하네요..

    >

    > DataModule로 작성해서 application 실행시에 Connected를 TRue로 하고, KeepConnection 을 TRUE로 설정했는데.. 왜 RunTime시에 Connected 속성이 FALSE로 나오고, 왜 이런 에러들이 발생하는지 이해가 안갑니다.

    >

    > 왜그런건지 조언 부탁드립니다.

    >