主题:各位大侠帮帮忙啊 如何把jpg格式的图片存到sql数据库中或者access中
克里斯
[专家分:0] 发布于 2006-07-24 13:34:00
我想把jpg格式的图片存到sql数据库中或者access中
怎么存啊 请问
然后读的时候怎么能读出来了
请各位帮帮我 给个详细的答案 小弟感激不尽 因为我是刚学 希望知道的各位大哥能写的详细点 谢谢了
非常感谢各位
回复列表 (共2个回复)
沙发
wealthy [专家分:1840] 发布于 2006-07-24 16:26:00
procedure TForm1.savetodbClick(Sender: TObject); //保存图像
var
strm:tmemorystream;
ext:string;
begin
if image1.picture.Graphic <> nil then //避免image1中无图像保存出错
begin
ext:=extractfileext(openpicturedialog1.FileName );
strm := tmemorystream.Create ;
try
image1.Picture.Graphic.SaveToStream(strm);
adotable1.Edit ;
strm.Position :=0;
DBImage1.dataField :=''; //dbimage只能显示BMP,否则myimage由BMP变为jpeg时会出错
tblobfield(adotable1.FieldByName('myimage')).LoadFromStream(strm);
//如需直接由文件保存 TBlobField(adotable1.FieldByName('myimage')).LoadFromFile(OpenPictureDialog1.FileName);
//以下记录保存到数据库的图像格式
if uppercase(ext) = '.BMP' then
begin
adotable1.FieldByName('isbmp').Value := 1;
dbimage1.dataField := 'myimage';
end
else if (uppercase(ext) = '.JPG') OR ( uppercase(ext) = '.JPEG') THEN
adotable1.FieldByName('isbmp').Value := 0;
adotable1.Post ;
finally
strm.Free ; //如果你选用TBLOBSTREAM类,程序运行到此语句会出错,可该语句前添入adotable1.edit
end;
end;
end;
procedure TForm1.adoTable1AfterScroll(DataSet: TDataSet); //显示图像
var
strm:tadoblobstream;
jpegimage:tjpegimage;
bitmap:tbitmap;
begin
strm := tadoblobstream.Create(tblobfield(adotable1.fieldbyname('MYIMAGE')),bmread);
try //try1
strm.position :=0;
image1.Picture.Graphic := nil;
DBIMAGE1.DataField := '';
//显示时,BMP、JPEG两种图像数据必需分别处理
if adotable1.fieldbyname('isbmp').asstring ='1' then
begin //begin11
bitmap := tbitmap.Create ;
try //try11
bitmap.LoadFromStream(strm);
image1.Picture.Graphic := bitmap;
DBIMAGE1.DataField := 'myimage';
finally
bitmap.Free;
end; //end try11
end //end begin11
else if adotable1.fieldbyname('isbmp').asstring ='0' then
begin //begin12
jpegimage := tjpegimage.Create ;
try //try12
jpegimage.LoadFromStream(strm);
image1.Picture.Graphic := jpegimage;
finally
jpegimage.Free ;
end; //end try12
end; //end begin12
finally
strm.Free ;
end; //end try1
end;
板凳
克里斯 [专家分:0] 发布于 2006-07-29 14:35:00
谢谢了呵呵 多谢
我来回复