在Delphi中如何在数据库中保存和读取照片 在Delphi中如何在数据库中保存和读取照片---------------流和文件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回答了很多这样的问题,技术方案就是用BLOB字段,你上网搜一下很多这样的文章。 下面是利用流在sqlserver中保存图片的代码,看看对你是否有帮助。读取图片,我直接用的是dmimage控件与数据库关联,偷懒了。procedure TFrmNewGoods.AddPicture(sgoodscode:String);var picstream:tadoblobstream; bmppic:tbitmap; jpgpic:tjpegimage; bmpstream:TMemoryStream; OpenPicDialog:TOpenPictureDialog; itype:boolean;begin try OpenPicDialog:=TOpenPictureDialog.Create(nil); //if messagedlg('此商品是否有图片信息,如果有请选择是进行保存,否则选则否退出!',mtInformation,[mbYes, mbNo], 0) = mrNo then exit; adoquery1.Connection:=DMdataMode.DBConnection; OpenPicDialog.Filter:='All *.jpg;|*.jpg;)'; itype:=false; adoquery1.SQL.Text:='select goodscode,picture from gds_goodscode with(nolock) where goodscode='+sgoodscode; adoquery1.open; adoquery1.Edit; if OpenPicDialog.Execute then begin jpgpic:=tjpegimage.Create; bmppic:=tbitmap.Create; bmpstream:=tmemorystream.Create; jpgpic.LoadFromFile(OpenPicDialog.filename); bmppic.Assign(jpgpic); bmppic.SaveToStream(bmpstream); picstream:=tadoblobstream.Create(tblobfield(adoquery1.Fields[1]),bmWrite); picstream.LoadFromStream(bmpstream); picstream.Position:=0; tblobfield(adoquery1.Fields[1]).loadfromstream(picstream); itype:=true; end; adoquery1.Post; if itype then begin Adoquery1.Edit; picstream.Free; jpgpic.Free; bmppic.Free; bmpstream.Free; end; finally OpenPicDialog.free; end;end; 错误exception eaccessviolation in module p_train.exe at 000848d1是由什么引起的? 找不到单元文件 ▲如何进行时间运算???? 如何开方呀? 请使用过TWebBrowser的高手近来 MSN Messenger 6左侧的TAB是如何作出来了? 關於三層系統中 Clientdata 排序的問題 scktsrvr设置Timeout0.5为何无效?与Winloute有关吗? query.append有问题 用Delphi如何写ASP组件 数组长度增加问题 线程中使用了xml就不能正确显示结果,求解
读取图片,我直接用的是dmimage控件与数据库关联,偷懒了。
procedure TFrmNewGoods.AddPicture(sgoodscode:String);
var
picstream:tadoblobstream;
bmppic:tbitmap;
jpgpic:tjpegimage;
bmpstream:TMemoryStream;
OpenPicDialog:TOpenPictureDialog;
itype:boolean;
begin
try
OpenPicDialog:=TOpenPictureDialog.Create(nil);
//if messagedlg('此商品是否有图片信息,如果有请选择是进行保存,否则选则否退出!',mtInformation,[mbYes, mbNo], 0) = mrNo then exit;
adoquery1.Connection:=DMdataMode.DBConnection;
OpenPicDialog.Filter:='All *.jpg;|*.jpg;)';
itype:=false;
adoquery1.SQL.Text:='select goodscode,picture from gds_goodscode with(nolock) where goodscode='+sgoodscode;
adoquery1.open;
adoquery1.Edit;
if OpenPicDialog.Execute then
begin
jpgpic:=tjpegimage.Create;
bmppic:=tbitmap.Create;
bmpstream:=tmemorystream.Create;
jpgpic.LoadFromFile(OpenPicDialog.filename);
bmppic.Assign(jpgpic);
bmppic.SaveToStream(bmpstream);
picstream:=tadoblobstream.Create(tblobfield(adoquery1.Fields[1]),bmWrite);
picstream.LoadFromStream(bmpstream);
picstream.Position:=0;
tblobfield(adoquery1.Fields[1]).loadfromstream(picstream);
itype:=true;
end;
adoquery1.Post;
if itype then
begin
Adoquery1.Edit;
picstream.Free;
jpgpic.Free;
bmppic.Free;
bmpstream.Free;
end;
finally
OpenPicDialog.free;
end;
end;