Q&A

  • 파라독스 테이블을 생성할때 Number is out of range에러가..
아래와 같이 파라독스 테이블을 생성하는데 Number is out of range에러가 발생하는데... 원인을 모르겠네요...

    Close;
    TableName    := 'T07131_RT.DB';
    DataBaseName := 'KITR';
    TableType    := ttParadox;
    with FieldDefs do begin
      Clear;
      Add('MST_NO',        ftString,   6, False    );
      Add('ID',            ftString,  13, False    );
      Add('NAME',          ftString,  30, False    );
      Add('ID_NAME',       ftString,  43, False    );
      Add('SAUPJA_NO',     ftString,  10, False    );
      Add('SANGHO',        ftString,  30, False    );
      Add('ID2',           ftString,  13, False    );
      Add('NAME2',         ftString,  30, False    );
      Add('UPJONG',        ftString,  30, False    );
      Add('TAX_AREA',      ftCurrency, 0, False    );
      Add('SAUP_SOYOU_CD', ftString,   2, False    );
      Add('SAUP_UPSO_NAME',ftString,  10, False    );
      Add('MUL_ADDR',      ftString,  60, False    );
      Add('ADDR',          ftString,  60, False    );
    end;
    with IndexDefs do begin
      Clear;
      Add('SAUP_MST_KEY', 'MST_NO;ID_NAME', [ixPrimary, ixUnique]);
    end;
    CreateTable;

그리구 위 소스에서 ID, NAME 필드를 삭제하고 테이블을 생성할때는 Number is out of range에러가 안나거든요...

제발 원인이 뭔지좀 가르쳐주세요...고수님들...
4  COMMENTS
  • Profile
    KDDG_ZZOM 2003.06.25 21:34
      with IndexDefs do
      begin
        Clear;
        Add('','SAUP_MST_KEY; MST_NO ;ID_NAME', [ixPrimary, ixUnique]);
      end;

    이렇게 한번 해서 해보세요...

    즐프하세요...

  • Profile
    노계섭 2003.06.25 23:30
    아래와 같이 하면 SAUP_MST_KEY 필드가 없다는 에러가 납니다.

  • Profile
    KDDG_ZZOM 2003.06.25 23:49
    제가 잘못봤군요...^^

    Add('','MST_NO; ID_NAME', [ixPrimary, ixUnique]);

    이렇게 해보세요...^^

    잘되길 바라며... 파라독스 만들때 키값은 줘본적이 없어서...

    참고로 제가 하는사용했던 방법입니다...

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Temp_Table_AAD52900P : TTable;
    begin
      Temp_Table_AAD52900P := TTable.Create(nil);
      with Temp_Table_AAD52900P do
      begin
        DataBaseName    := 'C:SfmiTemp';
        TableName       := 'test';
        TableType       := ttParadox;
        with  FieldDefs  do
        begin
          Clear;
          Add('F_Acdnt_No'          , FtString , 10, False); // 사고번호
          Add('F_Cnt'               , FtInteger,  0, False); // 발급회차
          Add('F_Dmbo_Gb'           , FtString ,  1, False); // 담보
          Add('F_Dmgd_Psn_Num'      , FtInteger,  0, False); // 서열
          Add('F_No'                , FtAutoInc,  0, False); // 순번
          Add('F_Acdnt_Ymd'         , FtString , 10, False); // 사고일자
          Add('F_Reqsit_Ymd'        , FtString , 10, False); // 접수일자
          Add('F_Dmgd_Psn_Nm'       , FtString , 30, False); // 피해자명
          Add('F_Hosptl_Nm'         , FtString , 50, False); // 진료병원
          Add('F_Rept_Ymd'          , FtString , 10, False); // 처리일자
          Add('F_Dmdngja_Cnter'     , FtString ,  5, False); // 보상센터
          Add('F_Dmdngja_Team'      , FtString ,  5, False); // 보상팀
          Add('F_Dmdngja_Id'        , FtString ,  8, False); // 담당자
          Add('F_Process_Cnter'     , FtString , 30, False); // 처리자
          Add('F_Process_Id'        , FtString , 30, False); // 작성센터명
          Add('F_Reptr_Cnter'       , FtString , 30, False); // 보상센터명
          Add('F_Reptr_Id'          , FtString , 30, False); // 보상담당자
        end;

        with IndexDefs do
        begin
          Clear;
          Add('','F_Acdnt_No; F_Cnt; F_Dmbo_Gb; F_Dmgd_Psn_Num; F_No',[ixPrimary, ixUnique]);
        end;

        CreateTable;
      end;

    즐프하세요...

  • Profile
    남기섭 2003.06.27 01:35
    안녕하세요...
    저같은 초보도 답변 함 써보네요...^^;
    파라독스에서 프라이머리 인덱스에는
    반드시 필드 순서대로 해야되요.. 앞에서부터...
    그러니까 인덱스 추가부분에..

    Add('',' MST_NO ;ID;NAME;ID_NAME', [ixPrimary, ixUnique]);

    이렇게 하세요...   * 프라이머리는 반드시 필드 첨부터 순서대로 *

    그럼.. 즐프하세요...