Q&A

  • 입력할때 에러메세지2
다시 질문을 하여야 할것 같습니다.

Append을 하여 코딩을 작성하니 다음과 같은 에러메세지가 발생합니다.

Key violation라는 에러가 발생

해결방법좀 제발..........



procedure TFrmItemEdit.DBMemo1Exit(Sender: TObject);

begin



DBArticle.Append;

DBArticle.FieldByName('Article').Assign(DBMemo1.Lines);

DBArticle.Post;



end;

1  COMMENTS
  • Profile
    유수 1999.06.23 00:36


    키필드에 값이 지정되지 않아서 나는 에러입니다.



    해당 테이블의 프라이머리 키필드는 반드시 값이 지정되어 주어야 합니다.



    required 필드이기 때문입니다. 만약 파라독스 테이블의 자동 증가형 필드라면



    예외이지만, 기타 다른 종류의 Key 필드를 사용하신다면, 레코드를 추가 시키



    기 전에 key필드에 값을 전에 값을 넣어 준 다음, post시켜 주어야 합니다.



    소스를 아래 소스를 보니 DBMemo를 떠날때, 추가 함수인 Append를 쓰고,



    값을 지정한 다음 바로 Post해 버리고 계신데, 프라이머리 키필드에 값을 넣어



    주지 않아서 에러가 나는 것입니다. 어떤 구성의 테이블인지 모르겠지만,



    Tabel의 OnNewRecord이벤트에서 키필드에 값을 넣어주셔도 되고 기타 그 밖의



    방법으로 키필드에 값을 넣어주고 난뒤에, Post시켜 주세요.



    아래 소스는 다음과 같이 하면 되겠습니다.



    DBArticle.Append;

    // 만약 AKeyField가 Date 형의 프라이머리 키필드일때, 현재 날짜를

    // 값으로 저장하는 경우

    DBArticle.FieldByName('AKeyField').AsDate := Date;

    DBArticle.FieldByName('Article').Assign(DBMemo1.Lines);

    DBArticle.Post;







    bds 께서 말씀하시기를...

    > 다시 질문을 하여야 할것 같습니다.

    > Append을 하여 코딩을 작성하니 다음과 같은 에러메세지가 발생합니다.

    > Key violation라는 에러가 발생

    > 해결방법좀 제발..........

    >

    > procedure TFrmItemEdit.DBMemo1Exit(Sender: TObject);

    > begin

    >

    > DBArticle.Append;

    > DBArticle.FieldByName('Article').Assign(DBMemo1.Lines);

    > DBArticle.Post;

    >

    > end;