본문 바로가기
Delphi Tip/데이터베이스

오라클에 이미지 저장/불러오기 방법

by MonoSoft 2022. 1. 11.
728x90
반응형

오라클에 이미지 저장/불러오기 방법

 

오라클 컬럼을 BLOB 타입으로 만들어야겠지만...

그것은 32KB이상 되는건 저장되지 않는당...오라클7이상은 모르겠지만..

암튼 LONG RAW타입으로 만든다.

 

=저장 소스=

procedure TFBITEM_I1.Button1Click(Sender: TObject);

var

Ms: TMemoryStream;

Jpg: TJPEGImage;

begin

with QR_TEMP_ do

begin

Close;

SQL.Clear;

SQL.Add('INSERT INTO CITEMIMG_ (ITEM_CODE,ITEM_IMAG,ITEM_BIGO )');

SQL.Add('VALUES (''24234'', :ITEM_IMAG, ''sadfasd'')');

 

Ms := TMemoryStream.Create;

Jpg:= TJPEGImage.Create;

MS.Position := 0;

Jpg.Assign(IM_ITEM.Picture.Graphic);

Jpg.SaveToStream(MS);

ParamByName('ITEM_IMAG').LoadFromStream(Ms,ftBlob);

ExecSQL;

End;

 

Ms.Destroy;

Jpg.Destroy;

end;

 

=불러오기 소스=

var

L_JPEG : TJPEGimage;

L_Stream : TStream;

begin

Try

Image_Open.Picture := Nil;

with QR_TEMP_ do

begin

Close;

Sql.Clear;

Sql.Add('select * from CITEMIMG_ ');

Open;

 

if FieldByName('ITEM_IMAG').AsString <> '' then

begin

L_Stream := CreateBlobStream(TBlobField(FieldByName('ITEM_IMAG')), bmRead);

L_Stream.Position := 0;

L_JPEG := TJpegimage.Create();

L_JPEG.LoadFromStream(L_Stream);

Image_Open.Picture.Assign(L_JPEG);

L_JPEG.Free();

end

else

begin

Image_Open.Picture := Nil;

end;

end;

 

Except

end;

end;

 

728x90
반응형

댓글