기존 Q/A에 올라온 자료를 참고하여 불필요한 부분을 빼고 했는데도
변함없이 32K는 실패로 돌아가다....
아래 코딩에 문제가 있는건지 아니면 어떤 다른 문제가 있는건지
참고로 DB는 오라클 DataType은 LONG LAW 이고요
BDE의 BLOB 과 BLOB CASH 인가요 둘다 32와 64에서
256, 256으로 변형 했지만 역시 변함없이 문제가 발생합니다...
코딩에 문제인지 아니면 다른 문제인지
답변 기다립니다...
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Image를 BlobField로...
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Procedure FN_JpgToGraphicField(pImage1: TImage; pGrField: TBlobField;
sFileName: String);
var
JPG: TJPEGImage;
JPGStream: TBlobStream;
s_Ext: String;
i_pos, i_width: Integer;
Begin
//=-=-=>> 파일명중 확장자만 검출
i_pos := pos('.', sFileName);
if i_pos <= 0 Then Exit;
i_width := Length(sFileName) - i_pos;
inc(i_pos);
s_Ext := Copy(sFileName, i_pos, i_width);
s_Ext := LowerCase(s_Ext);
//=-=-=>> 파일명중 확장자만 검출
JPGStream := TBlobStream.Create(pGrField, bmReadWrite);
pImage1.Picture.LoadFromFile(sFileName);
if Lowercase(s_Ext) = 'bmp' Then Begin // bmp일 경우
JPG := TJPEGImage.Create;
JPG.Assign(pImage1.Picture.Graphic);
JPGStream.Seek(0, soFromBeginning);
JPGStream.Truncate;
JPG.SaveToStream(JPGStream);
JPG.Free;
End
else Begin // gif, jpg일 경우
JPGStream.Seek(0, soFromBeginning);
JPGStream.Truncate;
pImage1.Picture.Graphic.SaveToStream(JPGStream);
End;
JPGStream.Free;
End;
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// BlobField를 이미지로...
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure FN_GraphicFieldToJpg(pImage1: TImage; pGrField: TBlobField);
var
JPGStream: TStream;
JpgImage : TJPEGImage;
gifImage : TGIFIMAGE;
s_Ext: String;
begin
if pGrField.IsNull Then Begin
pImage1.Picture.Graphic := nil;
Exit;
End;
s_Ext := Copy(pGrField.AsString, 1, 3);
s_Ext := LowerCase(s_Ext);
JPGStream := pGrField.DataSet.CreateBlobStream(pGrField, bmRead);
if s_Ext = 'gif' Then Begin
gifImage := TGifImage.Create;
gifImage.LoadFromStream(JPGStream);
PImage1.Picture.Assign(gifImage);
gifImage.Free;
End Else Begin
JpgImage := TJPEGImage.Create;
jpgImage.LoadFromStream(JPGStream);
pImage1.Picture.Assign(jpgImage);
JpgImage.Free;
End;
JPGStream.Free;
end;
BDE 설정에서 BLOB 사이즈를 999로 넣구 하세요