delphi中如何将jpg图片通过access数据库存取!!!
delphi中如何将jpg图片存入access数据库,又如何将已存入到数据库的图片读取回delphi的Image控件里,请指教!!! 问题点数:100、回复次数:7Top
1 楼kasteboy()回复于 2004-12-01 22:08:40 得分 25
procedure savejpg(Sender: TObject);
var
fs : Tfilestream;
begin
fs := TFileStream.Create('c:\test.jpg', fmOpenRead);
adoquery1.close;
adoquery1.sql.text := 'select id, img from table1';
adoquery1.open;
adoquery1.append;
adoquery1.fieldbyname('id').asinteger := 1;
TBlobfield(adoquery1.fieldbyname('img')).loadfromstream(fs);
adoquery1.post;
fs.Free;
end;
-------
procedure getjpg(Sender: TObject);
begin
adoquery1.close;
adoquery1.sql.text := 'select id, img from table1';
adoquery1.open;
TBlobfield(adoquery1.fieldbyname('img')).savetofile('c:\test.jpg');
image1.loadfromfile('c:\test.jpg');
end;Top
2 楼li_chengbin(小李飞刀)回复于 2004-12-01 22:35:35 得分 25
保存:
ADOQuery1.Insert;
TBlobField(ADOQuery1.FieldByName('Image')).LoadFromFile('C:\test.jpg');
ADOQuery1.Post;
读取:
Stream := TMemoryStream.Create;
TBlobField(ADOQuery1.FieldByName('Image')).SaveToStream(Stream);
Jpg := TJPEGImage.Create;
Jpg.LoadFromStream(Stream);
Image1.Picture.Assign(Jpg);
Jpg.Free;
Stream.Free;Top
3 楼xx_adam(一无所有)回复于 2004-12-01 22:49:30 得分 25
有好几种方法:
一、 assign方法可以将一个图片存到数据库中
Adoqry.parameters.parambyname('img').assgin(image1.picture.bitmap)
二、Tmemorystream
ms:Tmemorystream
ms:=Tmemorystream.create;
...
Adoquery.parameters[0].loadfrom(ms)
....Top
4 楼miczi(chenmymic)回复于 2004-12-01 23:09:26 得分 0
可以说明一下吗?TBlobfield(adoquery1.fieldbyname('img')).loadfromstream(fs);
TBlobfield(adoquery1.fieldbyname('img')).savetofile('c:\test.jpg');
这两句的作用,还有TBlobfield是什么
最后就是如何给分?Top
5 楼coeltdit(每天多顶几下----->>>大虾就是这样练成的)回复于 2004-12-02 08:30:00 得分 25
保存图片到数据库中:
procedure AddPicToDatabase(Filename:string);
var
JPG:TJPEGImage;
Stream:TMemoryStream;
begin
try
jpg:=TJPEGImage.Create;
stream:=TMemoryStream.Create;
jpg.LoadFromFile(Filename);
jpg.SaveToStream(stream);
stream.Position:=0;
TBlobField(mainfrm.Table1.FieldByName('Pic')).LoadFromStream(stream);
jpg.Free;
stream.Free;
except
end;
end;
从数据库中读出图片
procedure LoadPicFromDatabase(Sender:TImage);
var
Jpg:TJpegImage;
Stream:TMemoryStream;
begin
jpg:=TJpegImage.Create;
stream:=TMemoryStream.Create;
TBlobField(mainfrm.Table1.FieldByName('Pic')).SaveToStream(stream);
stream.Position:=0;
jpg.LoadFromStream(stream);
sender.Picture.Assign(jpg);
jpg.Free;
stream.Free;
end;
----------------------------------------------
最后教你给分:
点管理-------------->找到Coeltdit----------->输入100分,OK完成;
Top
6 楼1_(我第一)回复于 2004-12-02 08:45:18 得分 0
MarkTop
7 楼qizhanfeng(glacier)回复于 2004-12-02 08:54:34 得分 0
http://blog.csdn.net/ghyghost/archive/2003/07/21/15773.aspxTop




