数据库中存取图片

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

uses jpeg;

保存Image1中的图象至数据库 :

var

Ms:TmemoryStream;

jpg:Tjpegimage;

begin

ms:=TmemoryStream.Create;

Jpg.Assign(Image1.Picture.Graphic);

Jpg.SaveToStream(Ms) ;

Ms.Position :=0;

ADOquery1.append;

TBlobField(ADOquery1.FieldByName('img')).LoadFromStream(Ms);

ADOquery1.Post;

Ms.Free ;

jpg.free;

end;

从数据库中读取图象到image2中:

Var

Ms:TStringStream;

jpg:Tjpegimage;

begin

Ms:=TstringStream.Create('');

TBlobField(ADOquery1.FieldByName('img')).SaveToStream(Ms);

Ms.Position :=0;

Jpg.LoadFromStream(Ms);

Image2.Picture.Assign(Jpg);

Ms.Free;

jpg.free;

end;

例子2:

procedure TForm1.Button1Click(Sender: TObject); //插入圖片過程

var

testStream:TMemoryStream;

begin

try

testStream := TMemoryStream.Create; //創建內存流

Image1.Picture.Graphic.SaveToStream(testStream);//將圖片保存至內存流中

adoquery1.Close;

adoquery1.SQL.Clear;

adoQuery1.SQL.Add('Insert into test (id,photo) values (:id,:photo)');//進行插入操作

adoquery1.Parameters.ParamByName('id').Value := '003';

adoQuery1.Parameters.ParamByName('photo').LoadFromStream(testStream,ftBlob); //讀取保存的內存圖

adoquery1.ExecSQL;

finally

testStream.Free; //釋放內存流

end;

end;

procedure TForm1.Button2Click(Sender: TObject); //讀取圖片過程

var

mStream:TMemoryStream;

JpgFile:TjpegImage;

begin

if not ADOQuery1.FieldByName('photo').IsNull then begin ;

mStream:=TMemoryStream.Create ;

JpgFile:=TjpegImage.Create ;

TBlobField(ADOQuery1.FieldByName('photo')).SaveToStream(mStream);//顯示的轉換為BlobFiled並保存至內存流

mStream.Position :=0;

jpgfile.LoadFromStream(MStream);

image2.Picture.Assign(JpgFile);

end

else begin

image2.Picture :=nil;

end;

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有