Q&A

  • String 의 길이문제...
안녕하세요.

까마귀입니다. 좋은 저녁 되세요.



MS-SQL에서 메모필드가 없어서 VarChar로 잡아서 쓰고 있는데요.

길이는 500을 줬습니다. 긴 데이터가 여기까지 와서리...

그런데, 클라이언트 프로그램에서 Query로 가져오는데 이 필드가 StringField로 처리가 되더라고요.

그래서, 길이를 500으로 잡아줬습니다.

컴파일은 아무런 문제가 없는데, 실행시 이런 에러가 뜹니다.



Size Mismatch for field 'BIGO', expecting : 500 actual : 255



'기대값은 500인데 실제값은 255라서 크기 에러가 났다'라고 해석 했습니다.

왜 이런지 알수가 없군요.

제가 그 길이를 500으로 맞추어 줬는데요.

아시는 분 좀 도와주십시요.

그럼 감사합니다.꾸벅~~.







위대한 단군혼이 살아있는 나라.... 대한민국.

3  COMMENTS
  • Profile
    최용일 2000.05.10 09:27
    안녕하세요. 최용일입니다.



    그냥 string를 쓰세요. 길이를 잡아주면 예전의 string(AnsiString)로 설정이 됩니다.



    이것은 255자 이상의 문자를 쓸수가 없습니다. 그냥 string로 잡아주면 나머지 일은



    델파이가 알아서 해줍니다. 이렇게 하면 길이제한없이 사용할 수 있습니다. 아니면



    배열을 이용한 PChar를 이용하시던가요.



    ^^ 항상 즐코하세요.



    까마귀 wrote:

    > 안녕하세요.

    > 까마귀입니다. 좋은 저녁 되세요.

    >

    > MS-SQL에서 메모필드가 없어서 VarChar로 잡아서 쓰고 있는데요.

    > 길이는 500을 줬습니다. 긴 데이터가 여기까지 와서리...

    > 그런데, 클라이언트 프로그램에서 Query로 가져오는데 이 필드가 StringField로 처리가 되더라고요.

    > 그래서, 길이를 500으로 잡아줬습니다.

    > 컴파일은 아무런 문제가 없는데, 실행시 이런 에러가 뜹니다.

    >

    > Size Mismatch for field 'BIGO', expecting : 500 actual : 255

    >

    > '기대값은 500인데 실제값은 255라서 크기 에러가 났다'라고 해석 했습니다.

    > 왜 이런지 알수가 없군요.

    > 제가 그 길이를 500으로 맞추어 줬는데요.

    > 아시는 분 좀 도와주십시요.

    > 그럼 감사합니다.꾸벅~~.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국.

  • Profile
    까마귀 2000.05.10 18:21
    안녕하세요.

    까마귀입니다. 비가 올것 같은 날씨라 좀 시원하니 좋군요.



    TQuery 콤포넌트를 이용해서 데이터를 가져 오는데요.

    이게 필드 자동생성을 해도 그렇고, 수동 생성을 해도 마찬가지로 255이상은 저장이 않됩니다.

    길이를 잡아주지 말라고 했는데 어떻게 길이를 않잡아 주지요?

    내부 변수로 사용할때는 그냥 imsi : String 라고 선언하면 길이를 지정하지 않고 쓰는거지만 DataBase에서 자료를 가져오고 저장을 할때는 그냥 위처럼 선언하고 쓸수는 없잖아요.

    이럴 경우는 어떻게 해야 하지요?







    위대한 단군혼이 살아있는 나라.... 대한민국.



    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > 그냥 string를 쓰세요. 길이를 잡아주면 예전의 string(AnsiString)로 설정이 됩니다.

    >

    > 이것은 255자 이상의 문자를 쓸수가 없습니다. 그냥 string로 잡아주면 나머지 일은

    >

    > 델파이가 알아서 해줍니다. 이렇게 하면 길이제한없이 사용할 수 있습니다. 아니면

    >

    > 배열을 이용한 PChar를 이용하시던가요.

    >

    > ^^ 항상 즐코하세요.

    >

    > 까마귀 wrote:

    > > 안녕하세요.

    > > 까마귀입니다. 좋은 저녁 되세요.

    > >

    > > MS-SQL에서 메모필드가 없어서 VarChar로 잡아서 쓰고 있는데요.

    > > 길이는 500을 줬습니다. 긴 데이터가 여기까지 와서리...

    > > 그런데, 클라이언트 프로그램에서 Query로 가져오는데 이 필드가 StringField로 처리가 되더라고요.

    > > 그래서, 길이를 500으로 잡아줬습니다.

    > > 컴파일은 아무런 문제가 없는데, 실행시 이런 에러가 뜹니다.

    > >

    > > Size Mismatch for field 'BIGO', expecting : 500 actual : 255

    > >

    > > '기대값은 500인데 실제값은 255라서 크기 에러가 났다'라고 해석 했습니다.

    > > 왜 이런지 알수가 없군요.

    > > 제가 그 길이를 500으로 맞추어 줬는데요.

    > > 아시는 분 좀 도와주십시요.

    > > 그럼 감사합니다.꾸벅~~.

    > >

    > >

    > >

    > > 위대한 단군혼이 살아있는 나라.... 대한민국.

  • Profile
    최용일 2000.05.10 18:37
    안녕하세요. 최용일입니다.



    꼭 자리를 잡아주어야 한다면 zero-based문자열을 사용하세요. 이건 스트링으로도 형변



    환이 가능합니다.



    var

    ZB: array[0..499] of char;

    S: string;

    begin

    zb := 'its zero-based string';

    s := zb;

    end;



    ^^ 항상 즐코하세요.



    까마귀 wrote:

    > 안녕하세요.

    > 까마귀입니다. 비가 올것 같은 날씨라 좀 시원하니 좋군요.

    >

    > TQuery 콤포넌트를 이용해서 데이터를 가져 오는데요.

    > 이게 필드 자동생성을 해도 그렇고, 수동 생성을 해도 마찬가지로 255이상은 저장이 않됩니다.

    > 길이를 잡아주지 말라고 했는데 어떻게 길이를 않잡아 주지요?

    > 내부 변수로 사용할때는 그냥 imsi : String 라고 선언하면 길이를 지정하지 않고 쓰는거지만 DataBase에서 자료를 가져오고 저장을 할때는 그냥 위처럼 선언하고 쓸수는 없잖아요.

    > 이럴 경우는 어떻게 해야 하지요?

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국.

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > 그냥 string를 쓰세요. 길이를 잡아주면 예전의 string(AnsiString)로 설정이 됩니다.

    > >

    > > 이것은 255자 이상의 문자를 쓸수가 없습니다. 그냥 string로 잡아주면 나머지 일은

    > >

    > > 델파이가 알아서 해줍니다. 이렇게 하면 길이제한없이 사용할 수 있습니다. 아니면

    > >

    > > 배열을 이용한 PChar를 이용하시던가요.

    > >

    > > ^^ 항상 즐코하세요.

    > >

    > > 까마귀 wrote:

    > > > 안녕하세요.

    > > > 까마귀입니다. 좋은 저녁 되세요.

    > > >

    > > > MS-SQL에서 메모필드가 없어서 VarChar로 잡아서 쓰고 있는데요.

    > > > 길이는 500을 줬습니다. 긴 데이터가 여기까지 와서리...

    > > > 그런데, 클라이언트 프로그램에서 Query로 가져오는데 이 필드가 StringField로 처리가 되더라고요.

    > > > 그래서, 길이를 500으로 잡아줬습니다.

    > > > 컴파일은 아무런 문제가 없는데, 실행시 이런 에러가 뜹니다.

    > > >

    > > > Size Mismatch for field 'BIGO', expecting : 500 actual : 255

    > > >

    > > > '기대값은 500인데 실제값은 255라서 크기 에러가 났다'라고 해석 했습니다.

    > > > 왜 이런지 알수가 없군요.

    > > > 제가 그 길이를 500으로 맞추어 줬는데요.

    > > > 아시는 분 좀 도와주십시요.

    > > > 그럼 감사합니다.꾸벅~~.

    > > >

    > > >

    > > >

    > > > 위대한 단군혼이 살아있는 나라.... 대한민국.