Q&A

  • 그리드에서 자동적으로 일련번호 생성
DB그리드상에서 입력 하는 데요...

입력버튼을 누르면 일련번호가 자동적으로 생성이 되게 할려고 하는데요

번호
----
1
2
3

위의 경우 처럼 일련번호 순서대로 정렬이 되어 있다면 별 문제가 안 되는데

번호
----
1
3
2

와 같은 경우에는 추가 버튼을 누르면


번호
----
1
3
2
3  ....계속 추가 버튼을 누르면
4
5
..

과 같이 일련번호가 생성 됩니다
소스는 다음과 같습니다

qry.last;
SEQ :=   qry.fieldByName('일련번호').AsInteger;
qry.Append;
qry.fieldByName('일련번호').AsInteger := SEQ + 1;

해결 방법 알려주심 고맙겠슴다...

수고하십시요...





3  COMMENTS
  • Profile
    박성훈 2003.01.18 10:01

    안녕하세요?
    전 복잡한거는 모르겠구요.
    기냥 쿼리하난 더 붙여서 담 번호 구해오시면 될 것 같은데요.
  • Profile
    호롱불 2003.01.21 20:59
    입력 버튼누르기전의 레코드 카운터를 기억해 두었다가
    입력 버튼을 누르면 그 레코드 값에서 + 1 한 값을 입력 해주면..
    되지 않을가 하네요.... ㅎㅎ

  • Profile
    이준억 2003.01.13 02:25
    시퀀스를 이용하는 방법이 있죠.
    시퀀스의 메소드 중에 nextval이라는 것이 잇는데 이것은 시퀀스중에서 가장 큰값 다음 값을 생성하죠 이것을 필드에 삽입하면 문제가 없을것 같습니다.

    설명이 시원찮아서 소스를 올릴께욤
    DB는 오라클을 사용하였습니다. 그리고 BDE로 연결을 하였습니다.

    -테이블생성-
    Create table ttt
    (
      seq number(2)
    );
    이상

    -시퀀스 생성-
    create sequence seq_seq
    increment by 1
    start with 1
    maxvalue 99
    nocache
    nocycle;
    이상

    -델파이 소스-
    폼에서  DataSource, Query, Database컴포넌트로 디비와 컨드롤들을 연결 하였구여 버튼하나 그리고 DB그리드를 이용하여 실행하였슴니다.

      private
         procedure Display;// select 프로시저 선언
        { Private declarations }
      public
        { Public declarations }

    procedure TForm1.Display;//selcect 프로시저 구현
    begin
    with Query1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select * from ttt');
          Open;
        end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);//버튼을 누를때마다
                                               삽입과 DB에 반영 및 DB그리드에 다시 뿌려줌
    begin
      Database1.StartTransaction;
      with Query1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('insert into ttt (seq)');
          SQL.Add('values (seq_seq.nextval)');//여기서 seq에
                                                              시퀀스 seq_seq의 다음 값을 삽입
          ExecSQL;                                      
        end;
      Database1.Commit;//DB에 반영
      Display;//DB그리드에 다시 뿌려줌
    end;

    설명이 제대루 되셧는지 오르겠네여 말주변이 엄서서리 ^^;
    이해가 안되는 부분이 있으시다면 리플 달아 주십시요.
    제가 아는 부분 까지는 설명을 해드리겠습니다.

    그럼 즐코 하셈 ^^"

    • 최은하
    • 2003.01.13 18:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2003.01.13 22:06
      안녕하세요 하얀까마귀 입니다. 아마 Indy TCPServer 의 Connect,DisConnect, Execute를 말씀하시는것 ...
    • 한휘
    • 2003.01.13 18:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한휘
      2003.01.13 19:00
      procedure TForm1.Button1Click(Sender: TObject);   var TFS , RTFS1, RTFS2 : TFileStream; ...
    • 윤승환
      2003.01.13 18:10
         재귀(再歸)호출을 말씀하시는 거겠죠? 다시 자신을 호출한다는 뜻이니 함수내에서 자신을 ...
    • 김진호
    • 2003.01.13 03:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 그냥
      2003.03.22 23:45
      도움이 되시려는 지는 모르겠습니다만 우연히 소리에 대한 자료를 구하던중 라이브라리가 담긴 압축파일...
    • 작스
    • 2003.01.12 21:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2003.01.18 10:01
      안녕하세요? 전 복잡한거는 모르겠구요. 기냥 쿼리하난 더 붙여서 담 번호 구해오시면 될 것 같은데요.
    • 호롱불
      2003.01.21 20:59
      입력 버튼누르기전의 레코드 카운터를 기억해 두었다가 입력 버튼을 누르면 그 레코드 값에서 + 1 한 값...
    • 이준억
      2003.01.13 02:25
      시퀀스를 이용하는 방법이 있죠. 시퀀스의 메소드 중에 nextval이라는 것이 잇는데 이것은 시퀀스중에서 ...
    • 여시
    • 2003.01.12 13:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 그냥
      2003.01.13 05:40
      코드를 바로 작성하신것이 맞는지 모르겠군요.. 프로시저와 함수에  Begin..end; 레코드선어부...
    • 세라핌
      2003.01.15 20:12
      ocx에서 파일을 다운받게 하면 되지 않을까하는데..
    • 이정용
    • 2003.01.11 21:45
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2003.01.12 04:53
      전 델 5.0을 사용하는데 그런 종류의 경고는 나오지 않는군여.. 혹시 TStringList.Create하고 하셨는지?? ...
    • 이정용
      2003.01.13 18:13
      델 7.0을 쓰고 있구요, 사용은 아래와 같이 하였습니다. var   templist : TStringList; be...
    • 이준희
      2003.01.13 18:36
      create 문이 try 블럭 밖에 있어야 합니다. templist := TStringList.Create(); try finally  ...
    • 이정용
      2003.01.13 20:44
      답변해주셔서 감사합니다. 다시 컴파일 해보니 [경고]가 사라졌습니다. "이렇게 사용하는거구나~..."하고 ...
    • 엄화용
    • 2003.01.11 16:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2003.01.13 09:34
      일단 님 쿼리를 이런식으로 바꾸시는게 낫겠네요.. SELECT  A."ITEM_CODE", min(D."ITEM_NAME...
    • 박상윤
      2003.02.06 02:30
      winapi에는 그런 함수는 없습니다. FFT 를사용하시여 주파수를 분리 해서 사용하시거나 믹서 컴포를 사용...
    • 박성훈
      2003.01.11 22:56
      안녕하세요? 그런 옵션이 있는지는 정확이 모르겠습니다. 다만, 어플리케이션 차원에서 전역적으로 ...
    • 구창민
      2003.01.11 03:38
      안녕하세요~ 구창민입니다. OnChange 이벤트를 이용하시면 되겠군여.. 아래처럼 한번 해보세요.. ...
    • 한원희
      2003.01.12 09:41
      안녕하세요. 한원희입니다. TDatabase로 연결할 때, 파라미터 정보중에 Blob Size와 Blob Cache 값을 높...
    • 조승기
      2003.01.16 03:32
      안녕하세요. 조승깁니다. 음... 말씀하신 방법은 이미 시도를 해 봤습니다. 그런데 MySQL에서는 안되더군...
    • 박정훈
      2003.08.05 23:05
      안녕하세요. 좀 오래된 글이지만 혹시 다음에 어느분이라도 필요하실지 몰라 답글 올립니다. 저 역시 ...
    • 이명석
      2007.04.11 06:30
      정리하자면... 1. mysql 설정 : max_allowed_packet 값 설정 2. bde 설정 : bde admin(blob size,cache) ...
    • KDDG_sonic0
    • 2003.01.11 01:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.01.11 03:28
      영민님 저 구창민입니다. 길드에 관련글들 올려두었어여.. 달려가보세여. 건투를 빌어여~~
    • 왕초보
    • 2003.01.11 01:06
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2003.01.30 01:03
      일단 마우스 다운에서 컨트롤키를 인식시켜 멀티선택게함니다 또한 다른 컴포실행시엔 컨트롤 키를 해제...
    • 장석윤
      2003.02.04 21:46
      홍성락님 답변 감사드립니다. 더블클릭속도를 빠르게 설정해둔경우 문제가 되긴하지만.. ^^;; 작동 ...
    • 한원희
      2003.01.12 09:47
      안녕하세요. 한원희입니다. 도움이 될지는 모르겠지만, 윈도우즈 API 중에 키보드의 상태를 설정하는 Se...
    • 장석윤
      2003.01.13 21:30
      질문의 요지를 잘못이해하신듯하군요. pKeyboardState^[VK_Contro] := $80을 알고싶은게 아니라.. OnMo...