当前位置:主页>销售管理软件> 列表

读取数据库中的图片 找销售管理软件下载

进销存软件版1楼: 如何将数据库中的读出8条图片字段并依次显示在image1-8中

2楼: 用TDBIMGE控件,和显示字符型字段差不多! 如qq软件管理

3楼: (FieldbyName(''图片字段'') as TBlobfield).SaveToStream(tmpMem);
image1.loadfromstream...

4楼: 一个一个显示会吗?

5楼: 学习期待 中。。。。

6楼: 网上答案很多,摆脱先找找再来问

进销存软件版7楼: 大虾麻烦贴出来好吗?谢谢 谢谢

8楼: uses jpeg;
保存至数据库 :
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;
从数据库中读取:
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;

9楼: //保存图片到数据库中
procedure TForm1.Button5Click(Sender: TObject);
var
picstream:tadoblobstream;
begin
ADOTable1.Append;
picstream:=tadoblobstream.Create(tblobfield(ADOTable1imge),bmWrite);
if OpenPictureDialog1.execute then
begin
picstream.LoadFromFile(OpenPictureDialog1.filename);
picstream.Position:=0;
ADOTable1.edit;
tblobfield(ADOTable1imge).loadfromstream(picstream);
ADOTable1.post;
end;
end;
//显示数据库中的图片到期image
procedure TForm1.Button4Click(Sender: TObject);
var
ghy:TADOBlobstream;
pic:tjpegimage;
begin
ghy := TADOBlobstream.Create(ADOTable1imge, bmRead);
try
Pic:=TJpegImage.Create;
try
Pic.LoadFromStream(ghy);
Image1.Picture.Graphic:=Pic;
finally
Pic.Free;
end;
finally
ghy.Free
end;
end;

10楼: 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 wodetupian (id,photo) values (:id,:photo)'');

adoquery1.Parameters.ParamByName(''id'').Value:=''001'';
adoquery1.Parameters.ParamByName(''photo'').LoadFromStream(teststream,ftblob);
adoquery1.ExecSQL;
finally
teststream.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
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(''photo'')).LoadFromStream(ms);
adoquery1.Post;
jpg.Free;
ms.Free;
end;

procedure TForm1.Button3Click(Sender: TObject);
var ms:tmemorystream;


jpg:tjpegimage;
begin
ms:=tmemorystream.Create;
if not adoquery1.FieldByName(''photo'').IsNull then
begin
tblobfield(adoquery1.FieldByName(''photo'')).SaveToStream(ms);
ms.Position:=0;
jpg.LoadFromStream(ms);
image2.Picture.Assign(jpg);
jpg.Free;
ms.Free;
end;
end;

end.

11楼: 我的意思,并不是要如何保存图片到数据库,而是要将数据库中的图片同时显示出来,如使用分页技术,每页显示八张图片

12楼: 可悲啊,大富翁上的高手上哪去了,竞然没有人能够回答这个问题 如销售管理软件下载

13楼: 先声明个对象数组,用楼上的方法将数据库中的图片依次读到数组中,然后将数组中的图片一起显示出来。

进销存软件版14楼: 问题我自己解决,花了很长时间,特发出来与大家分享!希望在大富翁论坛的同志们,大家能够更加热心一些
var
d,j:integer;
jpg:TJPEGImage;
stream:TMemorystream;
begin
scrolldel;
if i >= RsCount then
ShowMessage(''已经是最后一页!'')


else
i := i + 1;
sp.ProcedureName := ''Pr_PageShowOne;1'';
sp.Close;
sp.Parameters.ParamByName(''@PageSize'').Value := 8;
sp.Parameters.ParamByName(''@PageCurrent'').Value := i;
sp.Parameters.ParamByName(''@FdName'').Value := ''pictureid'';
sp.Parameters.ParamByName(''@SelectStr'').Value := ''pictureid,title,picsmall,categoryname,picturedate,uploaddate,remark'';
sp.Parameters.ParamByName(''@FromStr'').Value := ''pictures'';
sp.Parameters.ParamByName(''@WhereStr'').Value := '''';
sp.Parameters.ParamByName(''@OrderByStr'').Value := ''pictureid'';
sp.Open;
Label1.Caption := ''记录总数:''+IntToStr(sp.Parameters.ParamValues[''@CountRows'']);
Label2.Caption := ''总页数:''+IntToStr(sp.Parameters.ParamValues[''@CountPage'']);
RsCount := sp.Parameters.ParamValues[''@CountPage''];
Label3.Caption := ''第 ''+IntToStr(i)+ '' 页'';

d:=sp.RecordCount;
j:=d;
//调用拷贝图片显示
while d>0 do
begin
image[j-d]:=Timage.Create(application.Owner);
labelx[j-d]:=Tlabel.Create(self);
pan[j-d]:=Tpanel.Create(self);
pan[j-d].Parent:=scrollbox1;
image[j-d].Parent:=pan[j-d];
labelx[j-d].Parent:=pan[j-d];
pan[j-d].Top:=150*((j-d)div 8)+10;
pan[j-d].Left:=120*((j-d)mod 8)+10;
image[j-d].Top:=2;
image[j-d].Left:=2;
image[j-d].Height:=115;
pan[j-d].Height:=130;
pan[j-d].Width:=110;
labelx[j-d].Top:=image[j-d].Height+2;
image[j-d].Width:=105;
labelx[j-d].Left:=2;
stream:=Tmemorystream.Create;
TBlobField(sp.FieldByName(''picsmall'')).SaveToStream(stream);
Stream.Position:=0;
jpg:=TJPEGImage.Create;
try
jpg.LoadFromStream(stream);
imageh[j-d]:=jpg.height;
imagew[j-d]:=jpg.width;
image[j-d].Stretch:=true;
//image1.Left:=0;
//image1.Top:=0;
image[j-d].Picture.Assign(jpg);
labelx[j-d].Caption:=sp.fieldbyname(''title'').AsString;
labelx[j-d].Font.Color:=clblue;
image[j-d].BringToFront;
labelx[j-d].BringToFront;
image[j-d].Visible:=true;
labelx[j-d].Visible:=true;
pcount:=pcount+1;
finally
jpg.Free;
end;
sp.next;
d:=d-1;
end;

end;

15楼: 多人接受答案了。