Q&A

  • #$D#$A 처리를 어떻게 해야 할지,,,
메모컴포넌트를 이용해서 DB에 자료를 저장합니다
INSERT INTO BL (BLNO, Goods)
VALUES ( 'JUNG0000011111',
    'COMMODITY : RE-ROLLABLE STEEL  SCRAPS,'#$D#$A#$D#$A'            EX. KAWASAKI STEEL CORPORATION, JAPAN'#$D#$A'            TYPICAL CHEMICAL COMPOSITIONS'#$D#$A'            (BUT NOT GUARANTEED)'#$D#$A'            C:0.30 PCT MAX., SI:0.50 PCT MAX., MN:1.60PCT MAX.,'#$D#$A'            S:0.04 PCT MAX., P :0.40 PCT MAX., '#$D#$A'            THICKNESS: 6MM - 12MM ABOUT 30PCT,'#$D#$A'            12.1MM - 50MM ABOUT 70 PCT'#$D#$A'            WIDTH : 100MM - UP. MOST PORTION OR 6 - 12MM IN THICKNESS'#$D#$A'                    IS 200MM - UP IN WIDTH'#$D#$A'            LENGTH : 1,200MM - UP.'#$D#$A#$D#$A'QUANTITY : 2,172 MT'#$D#$A#$D#$A'CLEAN SHIPPED ON BOARD'#$D#$A'FREIGHT PREPAID'#$D#$A#$D#$A'L/C NUMBER 025040402ILG0131'#$D#$A#$D#$A'NUNBER OF BUNDLES : 433 BUNDLES'#$D#$A'            ')

쿼리예시문장은 이렇구요 엔터키를 치면 #$D#$A값으로 넘어갑니다,
DB는 SQL SERVER구요 데이터타입은 TEXT로 되어있습니다
2000과 XP에서 컴파일하면 오류가 나지 않고 저장이 됩니다
98에서는 컴파일하면 .). 어쩌구하면서 TRUNCATED 에러가 납니다
혹시나 쿼리분석기에서 쿼리를 돌리면 서버: 메시지 170, 수준 15, 상태 1, 줄 3
줄 3: '#$D#$A#$D#$A' 근처의 구문이 잘못되었습니다. 라는 오류가 납니다
어떻게 해결을 해야 할지,,,벌써 며칠째 머리만 뜯고 있습니다,,,흑,,도와주세요~
2  COMMENTS
  • Profile
    채신옥 2002.05.25 19:41
    안녕하세요
    이곳에 첨으로 글을 올리는것 같네요~~~
    저는 98에서 돌려보지 않아서 에러가 나지는 않았는데요...
    메모컴포넌트는 엔터키를 치면 ASKII코드값 13번과
    줄바꿈을 의미하는 ASCII 10번 문자 두자를 포함하여 insert하게 됩니다.
    키보드로 입력할 수 없는 문자는 #기호를 사용하여 해당 ASCII코드를 사용하므로
    #13#10을 포함하는 거져...
    여기에 나타내는 숫자를 컴파일할때는 16진수로 바꾸므로 디버깅할때는
    #$D#$A이 값이 보일겁니다.
    #$D#$A#$D#$A가 나오신걸로 봐서 엔터키를 두번 치셨군요~~
    다음과 같은 함수를 써보세요...

    //대상문자열(Source)에서 ch문자 2byte제거하기
    function DelChar(Source, Ch: string): string;
    var
      Position: integer;
    begin
      Position := Pos(Ch, Source);
      while (Position > 0) do
      begin
        Delete(Source, Position, 2); //#$D#$A는 2byte
        Position := Pos(Ch, Source);
      end;
      Result := Source;
    end;
    //

    그리고 Insert하실때 해당문자열을 가져오실때는
    DelChar(Memo1.Lines.Text, #13#10)값을 가져오시면 됩니다.
    너무 늦게 올려서 도움이 되실지는 모르겟네용 ^^
    그럼 즐코 하세요~~~^^*
  • Profile
    nilriri™ 2002.05.07 23:32
    ' (단일인용부호)를 insert할때는 '' 이렇게 단일 인용부호를 2개를 적어줘야 하지 않나요?

    insert into table (col, col) values('value','value''s');
    일케요..

    이문제 아닌가??ㅡㅡ;