请问怎么样把图片写入到数据库中!比如ACCESS ( 积分: 20 )

  • 主题发起人 主题发起人 lirong_wfmall
  • 开始时间 开始时间
L

lirong_wfmall

Unregistered / Unconfirmed
GUEST, unregistred user!
比如表有2个字段,姓名和照片,比如我现在选择了图片,那怎么把图片写到数据库里呢/我搞了一晚上,都没有搞好
 
【关键词】:JPEG图片图像数据库
【解决思路】:
1、 关键在于将打开的JPEG文件动态转换为Tbitmap对象并显示在Timage对象中;
2、 将显示的图片提交到数据库中。

Procedure ChangeJpegToBmp();
var
bmp1:TBitmap;
jpg1:TJpegImage;
begin
OpenPictureDialog1.DefaultExt:=GraphicExtension(TJpegimage);
if OpenPictureDialog1.Execute then
begin
bmp1:=TBitmap.Create;
jpg1:=TJpegImage.Create;
try
jpg1.LoadFromFile(OpenPictureDialog1.FileName);
bmp1.Assign(jpg1);
Image1.Picture.Bitmap.Assign(bmp1);
finally
jpg1.Free;
bmp1.Free;
end;
end;
end;

应用:
ADOQ_temp:TADOQuery;photo:字段名称;
begin
ADOQ_temp.FieldByName('photo').Assign(Image1.Picture);
end;
 
http://www.16899.com.cn
网站上面有你们需要的答案,我也是最近才查到的
 
直接把文件的二进制序列存储进去,何必转换为Bitmap?浪费空间
 
同意LoveShanShan.
 
请LoveShanShan.给个原码好么,我也想学习下
 
保存:
ADOQuery2.Close;
ADOQuery2.SQL.Text :='insert into t_files(id,type,filename,[file]) values(:id,:type,:filename,:file)';
ADOQuery2.Parameters.ParamByName('id').Value := ID;
ADOQuery2.Parameters.ParamByName('type').Value := filetype;
ADOQuery2.Parameters.ParamByName('filename').Value := ExtractFileName(filename);
ms := TMemoryStream.Create;
try
ms.LoadFromFile(FileName);
ms.Position :=0;
ADOQuery2.Parameters.ParamByName('file').LoadFromStream(ms,ftBlob);
ADOQuery2.ExecSQL ;
finally
ms.Free;
end;
 
后退
顶部