tblobfield(table1.fieldbyname('blob')).savetofile;//写
tblobfield(table1.fieldbyname('blob')).Loadfromfile;//读

解决方案 »

  1.   

    //保存 
    procedure TForm1.ImageIntoDBBitBtnClick(Sender: TObject); 
    begin 
      try 
        with Query1 do 
          begin 
            close; 
            sql.clear; 
            sql.add('insert into img (imga) values(:imag)'); 
          end; 
        try 
          if FileName<>'' then 
            ParamByName('Img').LoadfromFile(FileName,ftGraphic) 
          else 
            ParamByName('Img') .asBlob:=''; 
          Query1.ExecSQL; 
        except 
          ShowMessage('图片保存出错!'); 
          exit; 
        end; 
      except 
      end; 
    end; 
     
    //读取 
    procedure TForm1.ImageFromDBBitBtnClick(Sender: TObject); 
    var 
      m_jpegstream:tmemorystream; 
    begin 
      with Query1 do 
      begin 
        close; 
        sql.clear; 
        sql.Add('select imga from img'); 
        try 
          Open; 
        except 
          exit; 
        end; 
      end; 
      if (Query1.FieldByName('imga') as tblobfield).asstring='' then 
      begin 
        exit; 
      end 
      else 
      begin 
        try 
        try 
          m_jpegStream:=TMemoryStream.Create; 
          (Query1.fieldbyname('imga') as TBlobField).SaveToStream(m_JpegStream); 
          m_JpegStream.Position:=0; 
          try 
            image2.Picture.Graphic:=nil; 
            image2.Picture.Graphic:=TJpegImage.Create; 
            image2.Picture.Graphic.LoadFromStream(m_JpegStream);  //读Jpeg 
          except 
            Image2.Picture.Bitmap.LoadFromStream(m_JpegStream);   //读Bmp 
          end; 
        except 
        end; 
        finally 
          m_JpegStream.Free; 
          Query1.Close; 
          Query1.UnPrepare; 
        end; 
      end; 
    end;