메모컴포넌트를 이용해서 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' 근처의 구문이 잘못되었습니다. 라는 오류가 납니다
어떻게 해결을 해야 할지,,,벌써 며칠째 머리만 뜯고 있습니다,,,흑,,도와주세요~
이곳에 첨으로 글을 올리는것 같네요~~~
저는 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)값을 가져오시면 됩니다.
너무 늦게 올려서 도움이 되실지는 모르겟네용 ^^
그럼 즐코 하세요~~~^^*