Q&A

  • 데이터 추가시 primary key 중복 여부 알기...
추가 버튼을 누르면 edit 로 값을 받아서 db 에 저장하려고 합니다.

이때... primary key 는 중복 되면 안되잖아여...

이럴때 중복 여부를 알려면 어떻게 해야 하죠??..



만약... primary key 가 단일 필드가 아니라... 2개 이상의 필드 조합일대는요???...



좋은 하루 되세요~~

3  COMMENTS
  • Profile
    아기코알라 2001.05.25 19:11
    ^^; wrote:

    > 추가 버튼을 누르면 edit 로 값을 받아서 db 에 저장하려고 합니다.

    > 이때... primary key 는 중복 되면 안되잖아여...

    > 이럴때 중복 여부를 알려면 어떻게 해야 하죠??..

    >

    > 만약... primary key 가 단일 필드가 아니라... 2개 이상의 필드 조합일대는요???...

    >

    > 좋은 하루 되세요~~



    안녕하세요



    아기 코알라 입니다. 저도 초보라 도움이 될런지.....

    자세한 내용은 "예외처리"로 검색을 해보세요..



    아래는 제가 사용하는 프로그램의 한 부분인데.. 참고만 하세요..



    //에외처리

    procedure TFront.Query2UpdateError(DataSet: TDataSet; E: EDatabaseError;

    UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);

    begin

    ShowMessage('이미 등록된 관리번호입니다.');

    UpdateAction := uaAbort;

    end;



    도움이 되었으면....

  • Profile
    ^^; 2001.05.25 21:18
    지금... 테이블을 사용하고 있거든여....

    구체적으로 어떻게 해야 하는지...

    다시 한번 질문 드려요~~~







    아기코알라 wrote:

    > ^^; wrote:

    > > 추가 버튼을 누르면 edit 로 값을 받아서 db 에 저장하려고 합니다.

    > > 이때... primary key 는 중복 되면 안되잖아여...

    > > 이럴때 중복 여부를 알려면 어떻게 해야 하죠??..

    > >

    > > 만약... primary key 가 단일 필드가 아니라... 2개 이상의 필드 조합일대는요???...

    > >

    > > 좋은 하루 되세요~~

    >

    > 안녕하세요

    >

    > 아기 코알라 입니다. 저도 초보라 도움이 될런지.....

    > 자세한 내용은 "예외처리"로 검색을 해보세요..

    >

    > 아래는 제가 사용하는 프로그램의 한 부분인데.. 참고만 하세요..

    >

    > //에외처리

    > procedure TFront.Query2UpdateError(DataSet: TDataSet; E: EDatabaseError;

    > UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);

    > begin

    > ShowMessage('이미 등록된 관리번호입니다.');

    > UpdateAction := uaAbort;

    > end;

    >

    > 도움이 되었으면....

  • Profile
    아기코알라 2001.05.28 20:41
    저도 테이블 컴포넌트는 오래전에 해본것이라 잘 기억은 나지 않지만 예전에

    제가 했던것이 있어 올립니다.

    도움이 되셨으면 합니다.



    DB를 Paradox를 사용할 경우 Primary Key 설정 할 필드에 Key 부분에 * 로 해주시고

    아래는 참고로 코딩 해보시기 바랍니다.



    //장비이력을 등록하는 이벤트(popup Menu)

    procedure TForm1.N8Click(Sender: TObject);



    var

    CurDate : TDateTime;

    Year, Month, Day, Hour, Min, Sec, MSec: Word;

    StrID : string;



    begin

    CurDate := Now;

    DecodeDate(CurDate, Year, Month, Day);

    DecodeTime(CurDate, Hour, Min, Sec, MSec);

    StrID := IntToStr(Year) + IntToStr(Month) + IntToStr(Day) +

    IntToStr(Hour) + IntToStr(Min) + IntToStr(Sec);

    Table1.Open;

    Table1.Append;

    if Form3.ShowModal = mrOK then // 버턴의 속성을 mrOK로 설정바람..

    begin

    Table2.IndexFieldNames := 'SuperNo'

    if(Table2.FindKey['SuperNo']) then // SuperNo는 Primary Key 설정 field

    begin

    Table1.Post;

    end;

    else

    begin

    ShowMessage('해당관리번호가 없습니다');

    end;



    if Form1.Table1.FieldByName('SuperNo').Asstring ='' then

    showmessage('관리번호를 입력 하세요')

    else begin

    // 중복된 값입력 안되게 하기 위해서

    Table1.FieldByName('id').asstring := StrID

    end;

    end;



    참고로 저도 edit에 값을 넣고 DB에 저장하는 프로그램을 해보았는데..사용상의 많은

    불편을 가져오더라구요..(무론 제 실력이 부족해서 그렇겠지만).

    그래서 저는 Query 컴포넌트를 사용하는데 DBGrid에 직접 Data를 입력하고 삭제 할수

    있읍니다. UpdateSQL 컴포넌트를 사용하면 되는데.. 그리 어렵지는 않아요..

    한번 권해드리는 것이니 참고하세요..

    만약 생각이 있으시면 연락주세요..지금 저도 그것을 사용해 프로그램을 만들고

    있는 중이니 도와드릴 수 있을겁니다.





    ^^; wrote:

    > 지금... 테이블을 사용하고 있거든여....

    > 구체적으로 어떻게 해야 하는지...

    > 다시 한번 질문 드려요~~~

    >

    >

    >

    > 아기코알라 wrote:

    > > ^^; wrote:

    > > > 추가 버튼을 누르면 edit 로 값을 받아서 db 에 저장하려고 합니다.

    > > > 이때... primary key 는 중복 되면 안되잖아여...

    > > > 이럴때 중복 여부를 알려면 어떻게 해야 하죠??..

    > > >

    > > > 만약... primary key 가 단일 필드가 아니라... 2개 이상의 필드 조합일대는요???...

    > > >

    > > > 좋은 하루 되세요~~

    > >

    > > 안녕하세요

    > >

    > > 아기 코알라 입니다. 저도 초보라 도움이 될런지.....

    > > 자세한 내용은 "예외처리"로 검색을 해보세요..

    > >

    > > 아래는 제가 사용하는 프로그램의 한 부분인데.. 참고만 하세요..

    > >

    > > //에외처리

    > > procedure TFront.Query2UpdateError(DataSet: TDataSet; E: EDatabaseError;

    > > UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);

    > > begin

    > > ShowMessage('이미 등록된 관리번호입니다.');

    > > UpdateAction := uaAbort;

    > > end;

    > >

    > > 도움이 되었으면....