Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[9794] [질문] jpeg error #52에 관하여...
김지훈 [] 1234 읽음    2004-08-05 22:19
안녕하세요... 델파이 초보자 입니다...!!  
jpg 그림 파일을  데이터 베이스에 저장 하였다가.. 불러 들이는데 위와 같은 에러가 납니다.

select 쿼리를 날려서 가져온 데이터를 아래 프로시져를 거쳐 TImage 컴퍼넌트에 집어 넣는 건데여...  같은 프로그램을 C/S버전으로 바꾸고 나서 부터 위와 같은 에러가 나더군요...  질문 글들을 살펴 보니깐.. jpeg포맷이 맞지 않아서 나는 에러라 하는데요..

c/s버전으로 바꾸기 전에는 잘 되던 소스 였습니다... 제생각으로는 아마도 DB를 바꾸면서 문제가 되지 않았는 싶습니다만...(파라독스(Graphi) -> 인터베이스(bolb))바꿨습니다....   저장 되는 작업에서는 에러 없이 저장이 되었는데여.... 다시 불러 들이니..
위와 같은 에러가 납니다...

혹시나 해서 인터베이스에 테이블 생성시.. 타입도 적어봅니다,
"PIC1"        BLOB SUB_TYPE 0 SEGMENT SIZE 80 --> 저 세그먼트라는 값은 적지 않아도 자동 생성 되더군요.. 상당히 거슬림..(--^)

고수님들의 답변 부탁드립니다...

procedure TdmPubCon.setImage(img : TImage; imgParam : String);
var
  aJpeg : TJpegImage;
  Buffer: PChar;
  MemSize: Integer;
  BStream : TStream;
begin
  BStream := ClnDS.CreateBlobStream(ClnDS.FieldByName(imgParam),bmRead);
  showmessage(inttostr(BStream.Size));
  MemSize := BStream.Size;
  Inc(MemSize);
  Buffer := AllocMem(MemSize);
  try
    BStream.Read(Buffer^, MemSize);
    BStream.Position := 0;
    aJpeg := TJPEGImage.Create;
    try 
      aJpeg.LoadFromStream(BStream);  --> 여기서 에러가 나더군요..
      img.Picture.Assign(aJpeg);

    finally
      aJpeg.Free;
    end;
  finally
    FreeMem(Buffer, MemSize);
  end;
end;

+ -

관련 글 리스트
9794 [질문] jpeg error #52에 관하여... 김지훈 1234 2004/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.