放一个IMAGE1
 NewGraphic:=TJPEGImage.Create;
Image1.Picture.Bitmap:=NewGraphic.LoadfromField(img_disp.FieldByName('存放图片的字段名'));

解决方案 »

  1.   

    可能的原因是你存入时的blobsize不够大
    因此你存入的图片已经被截断了
    检查一下你数据的内容,另存一下看看和存入前的大小是否一致
    如取出的文件大小为32k 那就检查一下你的database的blobsize吧
      

  2.   

    定义成blob类型
    我只用access实现过,定义成OLE类型,成功
      

  3.   

    用dbimage  不用编码程序呀
      

  4.   

    直接用一datasource控件将dbimage与img_disp连接起来,再设置一下img_disp的datafield属性为'存放图片的字段名'即可,对img_disp进行记录指针的移动即可得到不同记录中的图片
      

  5.   

    我试过存上1000K的图片,取出成功,不过是用oracle数据库。
    关键是的database的blobsize。最好设大些。8192
      

  6.   

    var
      ms:TMemoryStream;
      bmtemp:Tbitmap;
    begin
     bmtemp:=Tbitmap.Create;
     ms:=TMemoryStream.Create;
     try
      query1.Close;
       query1.SQL.Clear;
       query1.SQL.Add ('select AdFpic from  Admin');                                                                                                                                                            query1.SQL.Add('select AdFpic from Admin');
       query1.SQL.Add('where AdId='+edit1.Text);
       TBlobField(query1.FieldByName('AdFpic')).SaveToStream(ms);
       ms.Position:=0;
       bmtemp.LoadFromStream(ms);
       image1.Picture.Bitmap:=bmtemp;
       finally
        ms.Free;
       bmtemp.Free;
    end;其中我用的是query1 然后我在做的时候说AdFpic找不到,AdFpic是我在数据库里存放图片的字段名,读不出来,为什么阿?
      

  7.   

    存到数据库
    var
    pjpg:tjpegimage;
    pic:TMemoryStream;
    begin
    pjpg:=tjpegimage.Create;
    pjpg.LoadFromFile(F:\JPG.jpg);
    pic:=TMemoryStream.Create;
    pjpg.SaveToStream(pic);
    pic.Position:=0;
    TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);
    dataset.post;
    pic.Free;
    pjpg.free;
    end;
    从数据库取出
    var
    pjpg:tjpegimage;
    pic:TMemoryStream;
    begin
    pjpg:=tjpegimage.Create;
    pic:=TMemoryStream.Create;
    TBlobField(dataset.FieldByName('Img')).savetoStream(pic);
    pic.positon:=0;
    pjpeg.LoadFromStream(pic);
    image.graphi.bmp.assign(pjpeg);
    end;end;
      

  8.   

    拜托,我在指纹采集仪里读出来存进去的就是BMP格式,不要在说JPEG格式了,好不好?我急死了
      

  9.   

    Uses 
      JPEG的话,SQL Server甚至直接可以LoadFormFile
      

  10.   

    我用ADO,字段类型IMAGE
        with QC1,Parameters do begin
          Close;
          SQL.Clear;
          SQL.Add('Insert into Rkb (Tp,Tpmc) values (:Tp,:Tpmc);
          Try
            ParamByName('Tp').LoadFromFile(Fr_Image1.OD_Pic.FileName,ftGraphic);
            ParamByName('Tpmc').Value:=ExtractFileExt(Fr_Image1.OD_Pic.FileName);
            ExecSQL;
          Except
          End;
          Close;
        end;
      

  11.   

    With QC1 do begin
        Close;
        SQL.Clear;
        SQL.Add('select Tp,Tpmc from Rkb where RowGUID=:RGUID ');
        Parameters.ParamByName('RGUID').Value:=RowGUID;
        Open;
        if Trim(FieldByName('Tpmc').AsString)<>'' then begin
          PicName:=__TempPath+'TCPic'+Trim(FieldByName('Tpmc').AsString);
          FileSetAttr(PicName,0);
          DeleteFile(PicName);
          TBLOBFIELD(FieldByName('Tp')).SaveToFile(PicName);
          Fr_Image1.Img_TC.Picture.LoadFromFile(PicName);
          Fr_Image1.OD_Pic.FileName:=PicName;
        end;
        Close;
      end;
      

  12.   

    JPEG和BMP一样的,以流的形式存进数据库,
    再以流的形式读出来。只是读出来的后缀名和原来的后缀名一样就行了