오라클에 이미지 저장/불러오기 방법
오라클 컬럼을 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;
'Delphi Tip > 데이터베이스' 카테고리의 다른 글
델파이 데이타베이스 기초 2 (0) | 2023.10.04 |
---|---|
델파이 데이타베이스 기초 1 (0) | 2023.09.27 |
델파이 FDConnection SQLConnection 소스코드로 MySQL DB연결 (0) | 2022.01.13 |
SQLite 대량 insert 시 속도 저하 개선 (0) | 2022.01.12 |
MSSQL 초 --> 시분초 변환 (0) | 2022.01.07 |
댓글