你在数据中数据类型定义要正确!
(Adoquery1.FieldByName('图片') as TBlobField).assign(图片的路径及文件名)

解决方案 »

  1.   

    插var
      m_BitMap: TBitMap;
      m_Jpeg: TJpegImage;
      m_JpegStream: TMemoryStream;
    begin
      m_BitMap := TBitmap.Create;
      m_Jpeg := TJpegImage.Create;
      m_JpegStream := TMemoryStream.Create;
      try
        //VideoCap1.GrabFrameNoStop;
        m_BitMap.LoadFromFile('capture.bmp');
        m_Jpeg.Compress;
        m_Jpeg.Assign(m_Bitmap);
        m_Jpeg.SaveToStream(m_JpegStream);    query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add('pr_image :id,:test,:image');
        query1.ParamByName('id').asinteger:=12;
        query1.ParamByName('test').asstring:='图片';
        query1.ParamByName('image').LoadFromStream(m_JpegStream,ftblob);
        query1.ExecSQL;  finally
        m_Bitmap.Free;
        m_Jpeg.free;
        m_JpegStream.Free;
        query1.close;
      end;

    var
      m_JpegStream:TMemoryStream;
    begin
       m_JpegStream:=TMemoryStream.Create;
       query1.Close;
       query1.SQL.Clear;
       query1.SQL.Add('select * from image_table where id_im=12');
       query1.Prepare;
       query1.Open;
       (query1.FieldByName('image_im') as TBlobField).SaveToStream(m_JpegStream);
       image1.Picture.Graphic:=nil;
       image1.Picture.Graphic:=TJpegImage.Create;
       m_JpegStream.Position:=0;
       image1.Picture.Graphic.LoadFromStream(m_JpegStream);
      

  2.   

    下一个1stclass控个包,它的dbimage可以存储,bmp, .jpg, .ico文件,通过设置他的类型属性。  www.51delphi.com有下载
      

  3.   

    to  aft_st_sd(浪子) :编译通不过怎么回事!
    能解释一下你写的sql语句吗?
    说不认识TJpegImage
      

  4.   

    to linbee(linbee)
    你所说的图片是什么类型的?
      

  5.   

    要  use jpeg 单元
      

  6.   

    jpeg的形式好像不支持
    只能用bitmap
    这是怎么回事?
      

  7.   

    你不能就这样用的,要修改一下才行啊,比方说图片啊,SQL语句啊, 
    我这个是用视频捕捉卡存的,你改一下就可以了,
    不认识TJpegImage , 可能是你没有引用 jpeg 吧
      

  8.   

    var
      MS_JpegStream:TMemoryStream;
      M_BitMap:TBitMap;
      M_Jpeg:TJpegImage;
    begin
      try
        MS_JpegStream:=TMemoryStream.Create;
        M_BitMap:=TBitMap.Create;
        M_Jpeg:=TJpegImage.Create;
        if extractfileext(filename)='.bmp' then
          begin
            M_BitMap.LoadFromFile(filename);
            M_Jpeg.Compress;
            M_Jpeg.Assign(M_BitMap);
          end
        else if extractfileext(filename)='.jpg' then
          begin
            M_Jpeg.LoadFromFile(filename);
          end;
        M_Jpeg.SaveToStream(MS_JpegStream);
        with tempQuery do
          begin
            close;
            sql.clear;
            sql.Add('update userinfo set userphoto_ui=:IMage where userno_ui=:empid');
            ParamByName('empid').asstring:=empid;
            ParamByName('image').LoadFromStream(MS_JpegStream,ftblob);
            ExecSQL;
          end;
      finally
        MS_JpegStream.Free;
        M_BitMap.Free;
        M_Jpeg.Free;
      end;
    end;procedure TEmp_Form.GetPicture(EmpID: string; TempQuery: TQuery);
    var
      MS_JpegStream:TMemoryStream;
    begin
      try
        MS_JpegStream:=TMemoryStream.Create;
        with tempQuery do
          begin
            close;
            sql.clear;
            sql.Add('select userphoto_ui from userinfo where userno_ui=:empid');
            parambyname('empid').asstring:=empid;
            Open;
          end;
        if tempquery.FieldByName('userphoto_ui').isnull then
          begin
            emp_image.Picture.Graphic:=nil;
          end
        else
          begin
             (tempQuery.FieldByName('userphoto_ui') as tblobfield).savetostream(MS_JpegStream);
             emp_image.Picture.Graphic:=nil;
             emp_image.Picture.Graphic:=TJpegImage.Create;
             MS_JpegStream.Position:=0;
             emp_image.Picture.Graphic.LoadFromStream(MS_JpegStream);
          end;  finally
        MS_JpegStream.Free;
      end;这个够详细了吧?
      

  9.   

    万分感谢!我已经成功了!
    不过,还有一个问题,dbimage好像就不能浏览以jpeg形式存放的图片,而image倒是可以的,不知道这里面有没有什么技巧?dbimage能浏览以jpeg形式存放的图片吗?