Q&A

  • [DB] primary key의 카운트...좀 봐주십시오..ㅠㅠ


Function tForm2.CodeCount : String;

var

IScreenCount, i: Integer;

SCode : String;

begin

//레코드가 비어있으면 처음 pk에 10개의0을 집어넣습니다.

if Query2.RecordCount = 0 then begin

Result := '0000000000';

end

//여기서부터가 문제인데여... 0000000001그다음은 0000000002이런식으로

pk를 스트링으로 집어넣어야 하는데..물론 serial로 넣으면 되지만...

꼭 이렇게 넣어야할것이 다른 db와도 연결을시켜서 복합적으로 검색을 하려고

하니까..스트링을 써야 할것 같아서여.. 문법이 틀렸나?

else begin

if Query2.Last then begin

//이렇게 하면 현재 pk가 int변수 IScreenCount에 들어가겠져?

IScreenCount := Query2.Fieldbyname('screen_code').AsInteger;



'0000000000'를 int로 바꾸어서 넣으면 int 0

이 될테고..



//int 0에 +1을 하면 1이될테고...

IScreenCount+1;



//그걸 length 해서 나머지 9개를 '0'으로 채워넣으면

for i :=0 to i:= 10-Length(IScreenCount)do begin

SCode := '0';

end;

//일단 9개의 0이 SCode 에 채워넣어지면

//형변환을 해서 붙여넣으면 9개의 '0'과하나의'1'이 넣어

져야하는데......

SCode := +Length(IScreenCount)intTostr;

end;

end;

end;

end;



2  COMMENTS
  • Profile
    하기 2001.06.07 19:07
    현재의 상태대로 Coding을 하신다면 FormatFloat를 쓰셔도 될것 같은데요...



    Function ...

    var

    ...

    begin

    if Query2.RecordCount = 0 then Result := '0000000000'

    else begin

    if Query2.Last then

    begin

    IScreenCount := Query2.Fieldbyname('screen_code').AsInteger;

    SCode := formatfloat('0000000000',IScreenCount+1);

    end;

    end;

    end;



    이런식으로요.... 좀 간단해 졌죠.... ^^;

    그럼...







    aparadin wrote:

    >

    > Function tForm2.CodeCount : String;

    > var

    > IScreenCount, i: Integer;

    > SCode : String;

    > begin

    > //레코드가 비어있으면 처음 pk에 10개의0을 집어넣습니다.

    > if Query2.RecordCount = 0 then begin

    > Result := '0000000000';

    > end

    > //여기서부터가 문제인데여... 0000000001그다음은 0000000002이런식으로

    > pk를 스트링으로 집어넣어야 하는데..물론 serial로 넣으면 되지만...

    > 꼭 이렇게 넣어야할것이 다른 db와도 연결을시켜서 복합적으로 검색을 하려고

    > 하니까..스트링을 써야 할것 같아서여.. 문법이 틀렸나?

    > else begin

    > if Query2.Last then begin

    > //이렇게 하면 현재 pk가 int변수 IScreenCount에 들어가겠져?

    > IScreenCount := Query2.Fieldbyname('screen_code').AsInteger;

    >

    > '0000000000'를 int로 바꾸어서 넣으면 int 0

    > 이 될테고..

    >

    > //int 0에 +1을 하면 1이될테고...

    > IScreenCount+1;

    >

    > //그걸 length 해서 나머지 9개를 '0'으로 채워넣으면

    > for i :=0 to i:= 10-Length(IScreenCount)do begin

    > SCode := '0';

    > end;

    > //일단 9개의 0이 SCode 에 채워넣어지면

    > //형변환을 해서 붙여넣으면 9개의 '0'과하나의'1'이 넣어

    > 져야하는데......

    > SCode := +Length(IScreenCount)intTostr;

    > end;

    > end;

    > end;

    > end;

    >

  • Profile
    똘망울 2001.06.07 19:00
    CREATE TABLE "TABLENAME"

    (

    ABC VARCHAR2(10) NOT NULL

    , PRIMARY KEY (ABC)

    );







    SELECT TO_CHAR( TO_NUMBER(ABC) + 1,'000000009') FROM TABLE



    이런식으로 넣으면 되겠져...