很简单(20分)

  • 主题发起人 主题发起人 fzzz_radium
  • 开始时间 开始时间
F

fzzz_radium

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将图像资料存入数据库,写入时,是写入一指针还是图片的值。
 
首先取决于你的要求(图像的多少,数据库的容量,,,)
一般有两种做法:
1.在数据库中存放路径
2,直接以刘文件的方式存放到数据库
 
能不能说的具体一点,我不想采用存放路径的方法
 
为什么不自己搜索一下呢?就是BlobStream,BlobField的操作。
帮你找了一段。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=463502
来自mingkai_li
调入image1
if OpenPictureDialog1.execute then
MyFileName:=OpenPictureDialog1.FileName;
if FileExists(MyFileName) then begin
image1.Picture.loadfromfile(myfilename);
保存
procedure saveimage;
Var
BlobStream:TBlobStream;
JpegImage:TJpegImage;
begin
try
with Frm_DossierView.query1 do
try
JpegImage:=TJpegImage.Create;
BlobStream:=TBlobStream.Create(TBlobField(FieldByName('WSNR')),bmWrite);
BlobStream.Position:=0;
// BlobStream.Truncate;
JpegImage:=TJpegImage(Frm_DossierView.image1.Picture.Graphic);
JpegImage.SaveToStream(BlobStream);
finally
if Not Assigned(BlobStream) then BlobStream.Free;
if Not Assigned(JpegImage) then JpegImage.Free;
end;
except
end;
end;


读取

procedure loadimage;
Var
BlobStream:TBlobStream;
JpegImage:TJpegImage;
begin
try
BlobStream:=TBlobStream.Create(TblobField(Frm_DossierView.Query1.FieldByName('WSNR')),bmRead);
if BlobStream.Size>0 then
begin
JpegImage:=TJpegImage.Create;
JpegImage.LoadFromStream(BlobStream);
Frm_DossierView.Image1.Picture.Assign(JpegImage);
end
else
Frm_DossierView.Image1.Picture:=nil;
Finally
if Not Assigned(BlobStream) then BlobStream.Free;
if Not Assigned(JpegImage) then JpegImage.Free;
End;
end;
 
多人接受答案了。
 
后退
顶部