ORACLE中存取BMP图片是很比较简单的,而且方法也有不只一种,
可以通过image.picture.bitmap.loadfromfile(filename)和stream的方法
用stream的方法可以这样:
Stream:=FDataLink.DataSet.CreateBlobStream(FDataLink.Field,bmReadWrite);
try
bmp.SaveToStream(stream); //save to database
finally
stream.Free;
end;
这样是可行的,但你这里也只能存BMP图片(我试过),在程序中我有一个TDBimage控件,请问如何能将TDBimage中的jpeg图片存到ORACLE数据库中,并能从数据库中读取出来,我试过了下面的方法来存取JPEG图片,
TDBimage.picture.graphic.savetostream(stream)
TDBIMAGE.picture.graphic.loadtostream(stream)
保存成功,但从数据库load时却报错说地址访问出错,
Access violation at address 0044BF25 in module 'jsjglxt.ext' .
Read of address FFFFFFFF.
到底ORACLE能否存取JPEG图片,DELPHI程序中又怎样存取?
希望能得到各位高手的帮助。
可以通过image.picture.bitmap.loadfromfile(filename)和stream的方法
用stream的方法可以这样:
Stream:=FDataLink.DataSet.CreateBlobStream(FDataLink.Field,bmReadWrite);
try
bmp.SaveToStream(stream); //save to database
finally
stream.Free;
end;
这样是可行的,但你这里也只能存BMP图片(我试过),在程序中我有一个TDBimage控件,请问如何能将TDBimage中的jpeg图片存到ORACLE数据库中,并能从数据库中读取出来,我试过了下面的方法来存取JPEG图片,
TDBimage.picture.graphic.savetostream(stream)
TDBIMAGE.picture.graphic.loadtostream(stream)
保存成功,但从数据库load时却报错说地址访问出错,
Access violation at address 0044BF25 in module 'jsjglxt.ext' .
Read of address FFFFFFFF.
到底ORACLE能否存取JPEG图片,DELPHI程序中又怎样存取?
希望能得到各位高手的帮助。
TDBimage1.savetostream(stream);
TBLobField(adoquery1.fieldbyname("blob")).loadFromstream(stream);
///////////////
TBLobField(adoquery1.fieldbyname("blob")).savetostream(stream);
TDBimage1.loadfromstream(stream);
var
pjpg:tjpegimage;
pic:TMemoryStream;
begin
pjpg:=tjpegimage.Create;
pjpg.LoadFromFile(F:\JPG.jpg);
pic:=TMemoryStream.Create;
pjpg.SaveToStream(pic);
pic.Position:=0;
TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);
dataset.post;
pic.Free;
pjpg.free;
end;
从数据库取出
var
pjpg:tjpegimage;
pic:TMemoryStream;
begin
pjpg:=tjpegimage.Create;
pic:=TMemoryStream.Create;
TBlobField(dataset.FieldByName('Img')).savetoStream(pic);
pic.positon:=0;
pjpeg.LoadFromStream(pic);
image.graphi.bmp.assign(pjpeg);
end;end;