我把一些图片存储在数据库中,现在我想有ADOQuery把一些老的图片更新为新的图片,我用下面的方法:
with ADOQ_changepic do
begin
close;
sql.Clear;
sql.Text:='insert into 照片(照片名称,编号,照片)values(:zpmc,:pybh,:zp)';
parameters.ParamByName('zpmc').Value:=ddpic_zpmc.Text;
parameters.ParamByName('pybh').Value:=frm_fyxx.chid;
parameters.ParamByName('zp').LoadFromFile(addpic_zpyj.Text,ftBlob) ;
execsql;
但我发现这样只能附加到老图片后面。我想是把老图片换成全新的图片,不知道应该如何处理?
with ADOQ_changepic do
begin
close;
sql.Clear;
sql.Text:='insert into 照片(照片名称,编号,照片)values(:zpmc,:pybh,:zp)';
parameters.ParamByName('zpmc').Value:=ddpic_zpmc.Text;
parameters.ParamByName('pybh').Value:=frm_fyxx.chid;
parameters.ParamByName('zp').LoadFromFile(addpic_zpyj.Text,ftBlob) ;
execsql;
但我发现这样只能附加到老图片后面。我想是把老图片换成全新的图片,不知道应该如何处理?
Jpeg:TJPEGIMAGE;
Ms:TMemoryStream;//示意图
if (image1.Picture.Graphic<>nil) then
begin
Jpeg:=TJpegImage.Create;
try
jpeg.Assign(image1.Picture.Graphic);
ms:=Tmemorystream.Create;
jpeg.SaveToStream(ms);
ms.Position:=0;
TBlobField(FieldbyName('F_syt')).LoadFromStream(MS)
finally
jpeg.Free;
ms.Free;
end;
Query.SQL.Clear;
Query.SQL.Add('UPDATE myimages SET pic=:pic WHERE filename=''Image1''');
Query.ParamByName('pic').LoadFromFile('D:\Hasd2.bmp',ftBlob);
Query.ExecSQL;