안녕하세요. 여러분들의 많은 도움으로 jpg그림을 oracle db에 저장하였습니다.
그림이 들어가는 field의 datatype는 blob로 했구요,
테스트로 크기가 3KB정도되는 그림은 저장하는데 문제가 없는데 22~32KB정도되는 그림을 저장하려 하니 다음과 같은 error가 뜹니다.
이미지 저장시 query component를 이용하여 update,insert문등을 써서 저장하는데요.
error 메세지는 담과 같습니다.
"Long 값은 Long열에서만 입력할 수 있습니다.';
여러분의 많은 도움 기다리겠습니다.
> > 안녕하세요. 여러분들의 많은 도움으로 jpg그림을 oracle db에 저장하였습니다.
> > 그림이 들어가는 field의 datatype는 blob로 했구요,
> > 테스트로 크기가 3KB정도되는 그림은 저장하는데 문제가 없는데 22~32KB정도되는 그림을 저장하려 하니 다음과 같은 error가 뜹니다.
> > 이미지 저장시 query component를 이용하여 update,insert문등을 써서 저장하는데요.
> >
> > error 메세지는 담과 같습니다.
> > "Long 값은 Long열에서만 입력할 수 있습니다.';
> >
> > 여러분의 많은 도움 기다리겠습니다.
>
>
> 문제에 대한 해답은 잘 모르겠습니다만...
> 저 같은 경우에는 인터베이스를 사용해서 해봤는데 22KB이상도 문제없이 입력됐습니다.
> 도움이 될진 모르겠지만 소스 보시고 도움이 됐으면 좋겠습니다..
> 즐코 하세여~
>
> procedure TF_CMServer.JpegToDB;
> var
> JpegImage : TJpegImage;
> MS: TMemoryStream;
> begin
> JpegImage := TJpegImage.Create;
> MS := TMemoryStream.Create;
>
> ImageMap.Picture.LoadFromFile('c:Inetpubftprootclientimage_jpeg.jpg');
>
> JpegImage.Assign(ImageMap.Picture.Graphic);
> MS.Position:=0;
> JpegImage.SaveToStream(MS);
>
> with CMLogQuery do
> begin
> Close;
> Sql.Clear;
> Sql.Add('update log set SCREENIMAGE=:SCREENIMAGE');
> Sql.Add('where COMNAME=:COMNAME and STUDENTNUM=:STUDENTNUM and STARTTIME=:STARTTIME');
>
> ParamByName('SCREENIMAGE').LoadFromStream(MS,ftBlob);
> ExecSql;
> end;
>
> JpegImage.Destroy;
> MS.Destroy;
> end;