显示数据库中的图片:数据库中存取图片来源: 发布时间:星期四, 2009年2月12日 浏览:154次 评论:0
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:=TStream.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 o 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 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 begin image2.Picture :=nil; end; end; 0
相关文章读者评论发表评论 |
|