我把一些图片存储在数据库中,现在我想有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;
但我发现这样只能附加到老图片后面。我想是把老图片换成全新的图片,不知道应该如何处理?

解决方案 »

  1.   

    var
      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;
      

  2.   

    修改:Query.Close;
    Query.SQL.Clear;
    Query.SQL.Add('UPDATE myimages SET pic=:pic WHERE filename=''Image1''');
    Query.ParamByName('pic').LoadFromFile('D:\Hasd2.bmp',ftBlob);
    Query.ExecSQL;