保存img_vip图片进数据库
with qry1 do
begin
Close;
SQL.Clear;
sql.Add('update VIP000 set PIC000=:PIC000 where VIP000=:VIP000');
img_vip.Picture.SaveToFile('c:\a.bmp');
ParamByName('PIC000').LoadFromFile('c:\a.bmp',ftGraphic);
ParamByName('VIP000').AsString:=edt_VIP.Text;
ExecSQL;
end;
提取图片到img_Vip上
TBlobField(qry_VipZl.FieldByName('PIC000')).SaveToFile('c:\a.bmp');
img_vip.Picture.LoadFromFile('c:\a.bmp');
保存提取的图片都是损坏的,为什么?直接从磁盘打开图片会有‘源数据流被截断的提示’。
with qry1 do
begin
Close;
SQL.Clear;
sql.Add('update VIP000 set PIC000=:PIC000 where VIP000=:VIP000');
img_vip.Picture.SaveToFile('c:\a.bmp');
ParamByName('PIC000').LoadFromFile('c:\a.bmp',ftGraphic);
ParamByName('VIP000').AsString:=edt_VIP.Text;
ExecSQL;
end;
提取图片到img_Vip上
TBlobField(qry_VipZl.FieldByName('PIC000')).SaveToFile('c:\a.bmp');
img_vip.Picture.LoadFromFile('c:\a.bmp');
保存提取的图片都是损坏的,为什么?直接从磁盘打开图片会有‘源数据流被截断的提示’。
sql.Add('update VIP000 set PIC000=:PIC000 where VIP000=:VIP000');还是将将文件先转换成内存流,再保存。
var mStream:TMemoryStream;
bmp:TBitmap;
begin
mStream:=TMemoryStream.Create;
bmp:=TBitmap.Create;
try
bmp.LoadFromFile(OpenDialog1.FileName);
bmp.SaveToStream(mStream);
mStream.Position:=0;
with ADOQuery1 do
begin
Edit;
TBlobField(ADOQuery1.FieldByName('Pic')).LoadFromStream(mStream);
Post;
end;
finally
mStream.Free;
bmp.Free;
end;
end;