Delphi sql 存取图像.doc
文本预览下载声明
Delphi sql 存取图像
procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程
var
? Stream:TMemoryStream;
begin
? try
??? Stream := TMemoryStream.Create; //? 创建内存流
??? Image1.Picture.Graphic.SaveToStream(Stream);?? // 将图片保存到内存流中
??? adoquery1.Close;
??? adoquery1.SQL.Clear;
??? adoQuery1.SQL.Add(Insert into tbltemp (Image) values (:photo));??? // 进行插入操作
??? adoQuery1.Parameters.ParamByName(photo).LoadFromStream(Stream,ftBlob); // 读取保存的内存图
??? adoquery1.ExecSQL;
? finally
??? Stream.Free;???? // 释放内存流
? end;
end;
?
procedure TForm1.Button2Click(Sender: TObject); //读取图片过程
var
? Stream:TMemoryStream;
? Jpg:TjpegImage;
begin
? ADOQuery1.Close;
? ADOQuery1.SQL.Text:=SELECT * FROM tbltemp;?? // 查询图片
? ADOQuery1.Open;
? if not ADOQuery1.FieldByName(Image).IsNull then
??begin
????Stream:=TMemoryStream.Create ;
??? Jpg:=TjpegImage.Create ;
??? TBlobField(ADOQuery1.FieldByName(Image)).SaveToStream(Stream);??? // 显示的转换为BlobField并保存到内存流
??? Stream.Position :=0;
??? jpg.LoadFromStream(Stream);??? // 加载图片
??? image2.Picture.Assign(Jpg);
? end
? else
??begin
??? image2.Picture :=nil;
? end;
end;
sql server 2005 字段类型为 image
?
delphi使用的单元为jpeg, db, dbtables;
delphi 存储图片代码片段
procedure TForm1.btnPostClick(Sender: TObject);var? lMemoStream : TMemoryStream;? jpg : TJpegImage;begin? lMemoStream := TMemoryStream.Create;? jpg := TJpegimage.Create;? jpg.Assign(Img.Picture.Graphic);? jpg.SaveToStream(lMemoStream);? lMemoStream.Position := 0;??TBlobField(dm1.adoqrytea.fieldbyname(image)).LoadFromStream(lMemoStream);? dm1.adoqrytea.Post;end;
delphi从数据库读取到image中的代码片段
procedure TForm3.FormShow(Sender: TObject);var ? MyJPEG : TJPEGImage;? MS : TMemoryStream;begin? MyJPEG:=TJPEGImage.Create;? MS:=TMemoryStream.Create;? if not dm1.adostuview.Active then???? dm1.adostuview.Open;? with dm1.adostuview do? begin????TBlobField(dm1.adostuview.Fields[9]).SaveToStream(MS);??? ms.Position := 0;??? MyJPEG.LoadFromStream(MS);??? Img.picture.assign(MyJPEG);??? MyJPEg.free;??? MS.free
显示全部