Insert 버튼을 누르면 DB Grid의 첫번째 필드에 일련번호가 들어가며... Insert 버튼을 누를때마다 자동 증가하도록 하려고 합니다.
200102-0001, 200102-0002, 200102-0003.. 이렇게여..
앞의 6자리는 년도와 달이구여...
달이 바뀌면 당연히... 일련 번호는 200103-0001,200103-0002,200103-0003...
이렇게 되는 거지여...
계속 고민중인데.. 잘안되서여..
도와주세여~! Please....
> 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로 추가 시킴 될꺼에염.
참고로 즉석에서 친 부분이라서 에러가 발생할 수 있어여..^^"
모르시거나 다른 방법을 찾으시면 연락주시구여..
즐푸하세요..^^"