Q&A

  • 디비의 OLE타입 이미지를 qrdbImage에 올리기
델파이를 사랑하시는 여러분~~ 안녕들하세요

초보 호박파가 질문하나 드리겠습니다. 고수님들 한번 봐주세요.



디비: 파라독스

필드: admin_no ---- a

Pic ---- OLE

위 테이블에 jpeg를 insert를 하기위해 Pic필드를 OLE로 잡았습니다.

그런데 퀵레포트에서 qr디비이비지에 Pic을 읽어서 보이려고 하는데

잘 안되서 이렇게 질문을 드립니다.



아래처럼 코딩을 하게된건 qrdbimage에서 당연히 Pic필드의 내용을 읽어

올줄알았는데 예상밖에

Bitmap Image is not valid라는 에러가 뜨더군요. 그래서

pic에 있는 넘들이 몬가(이것도궁금하군요??) 안맞아서 그렇겠군..생각이

들어 아래처럼 하게 되었습니다. 그런데...잘 안되는군요.



아래것도 사실 어데서 카피해서 해보려고했더거에요..사실 아래것처럼 하는게 맞는지도 잘 모르겠군요.



좀 도와 주세요.....



procedure TfmHhaF_A001P.QuickRepNeedData(Sender: TObject;

var MoreData: Boolean);

var

JpegImage : TJpegImage;

MS : TMemoryStream;

begin

if not qryReport.active then qryReport.Open;

qryReport.parambyname('Admin_NO').AsString :=

fmHhaF_A001I.qryDEFAULTAdmin_NO.Value;



JpegImage := TJPEGImage.Create;

MS := TMemoryStream.Create;

try

(qryreport.FieldByName('Pic') As TBlobField).SaveToStream(MS);

MS.Position := 0;

JpegImage.LoadFromStream(MS);

QRDBImage1.Picture.Assign(JpegImage);

except

end;

JpegImage.Destroy;

MS.Destroy;



end;



1  COMMENTS
  • Profile
    hobakpa 2001.07.11 00:46
    procedure TfmHhaF_A001P.QuickRepNeedData(Sender: TObject;

    var MoreData: Boolean);

    var

    JpegImage : TJpegImage;

    MS : TMemoryStream;

    begin

    if not qryReport.active then qryReport.Open;

    qryReport.parambyname('Admin_NO').AsString :=

    fmHhaF_A001I.qryDEFAULTAdmin_NO.Value;



    JpegImage := TJPEGImage.Create;

    MS := TMemoryStream.Create;

    try

    (qryreport.FieldByName('Pic') As TBlobField).SaveToStream(MS);

    MS.Position := 0;

    JpegImage.LoadFromStream(MS);

    qrImage1.Picture.Assign(JpegImage);

    except

    end;

    JpegImage.Destroy;

    MS.Destroy;



    end;



    QRDBImage지 말고 QRImage로 바꾸어서 했습니다.

    역시 허접한 실력이라....^_^

    즐프하세요.