Q&A

  • DB 자동증가....Please~!
Insert 버튼을 누르면 DB Grid의 첫번째 필드에 일련번호가 들어가며... Insert 버튼을 누를때마다 자동 증가하도록 하려고 합니다.



200102-0001, 200102-0002, 200102-0003.. 이렇게여..

앞의 6자리는 년도와 달이구여...

달이 바뀌면 당연히... 일련 번호는 200103-0001,200103-0002,200103-0003...

이렇게 되는 거지여...



계속 고민중인데.. 잘안되서여..

도와주세여~! Please....





2  COMMENTS
  • Profile
    승추니 2001.02.24 21:13
    m(__)m wrote:

    > Insert 버튼을 누르면 DB Grid의 첫번째 필드에 일련번호가 들어가며... Insert 버튼을 누를때마다 자동 증가하도록 하려고 합니다.

    >

    > 200102-0001, 200102-0002, 200102-0003.. 이렇게여..

    > 앞의 6자리는 년도와 달이구여...

    > 달이 바뀌면 당연히... 일련 번호는 200103-0001,200103-0002,200103-0003...

    > 이렇게 되는 거지여...

    >

    > 계속 고민중인데.. 잘안되서여..

    > 도와주세여~! Please....

    >

    >



    ----------------------



    안녕하세요..



    우선 생각나는 방법으로는 직접 함수를 만들 수 있구여.. 글구 좋은 DB(?)라믄



    스토어드 프로시져나 트리거를 이용할 수도 있을 껌니다.



    구현으로는 쿼리, 테이블 둘다 가능하구여..



    우선 함수라면..



    CurrentMonth:= FormatDateTime('yyyymm', Date);



    Query1.SQL.Text:= 'SELECT MAX(ID) AS MaxID FROM TABLE WHERE ID LIKE '''

    + CurrentMonth+ '%''';

    Query1.Open;



    if not Query1.eof then

    MaxID:= FieldByName('MaxID').AsString

    else begin

    Result:= CurrentMonth+ '-0001';

    Query1.Close;

    Exit;

    end;



    Query1.Close;



    Result:= Copy(MaxID, 0, 6)+ <-- Copy 부분 맞는지 몰라여.ㅠ,.ㅠ 자꾸 헷갈려서여..

    '-'+Format('%.4d', [StrToInt(Copy(MaxID, 8, 4))+1]);





    이라구 해서 Result를 Query나 Table로 추가 시킴 될꺼에염.



    참고로 즉석에서 친 부분이라서 에러가 발생할 수 있어여..^^"



    모르시거나 다른 방법을 찾으시면 연락주시구여..



    즐푸하세요..^^"



  • Profile
    m(__)m 2001.02.27 20:02
    정말 감사합니다.....



    승추니 wrote:

    > m(__)m wrote:

    > > Insert 버튼을 누르면 DB Grid의 첫번째 필드에 일련번호가 들어가며... Insert 버튼을 누를때마다 자동 증가하도록 하려고 합니다.

    > >

    > > 200102-0001, 200102-0002, 200102-0003.. 이렇게여..

    > > 앞의 6자리는 년도와 달이구여...

    > > 달이 바뀌면 당연히... 일련 번호는 200103-0001,200103-0002,200103-0003...

    > > 이렇게 되는 거지여...

    > >

    > > 계속 고민중인데.. 잘안되서여..

    > > 도와주세여~! Please....

    > >

    > >

    >

    > ----------------------

    >

    > 안녕하세요..

    >

    > 우선 생각나는 방법으로는 직접 함수를 만들 수 있구여.. 글구 좋은 DB(?)라믄

    >

    > 스토어드 프로시져나 트리거를 이용할 수도 있을 껌니다.

    >

    > 구현으로는 쿼리, 테이블 둘다 가능하구여..

    >

    > 우선 함수라면..

    >

    > CurrentMonth:= FormatDateTime('yyyymm', Date);

    >

    > Query1.SQL.Text:= 'SELECT MAX(ID) AS MaxID FROM TABLE WHERE ID LIKE '''

    > + CurrentMonth+ '%''';

    > Query1.Open;

    >

    > if not Query1.eof then

    > MaxID:= FieldByName('MaxID').AsString

    > else begin

    > Result:= CurrentMonth+ '-0001';

    > Query1.Close;

    > Exit;

    > end;

    >

    > Query1.Close;

    >

    > Result:= Copy(MaxID, 0, 6)+ <-- Copy 부분 맞는지 몰라여.ㅠ,.ㅠ 자꾸 헷갈려서여..

    > '-'+Format('%.4d', [StrToInt(Copy(MaxID, 8, 4))+1]);

    >

    >

    > 이라구 해서 Result를 Query나 Table로 추가 시킴 될꺼에염.

    >

    > 참고로 즉석에서 친 부분이라서 에러가 발생할 수 있어여..^^"

    >

    > 모르시거나 다른 방법을 찾으시면 연락주시구여..

    >

    > 즐푸하세요..^^"

    >