一般情况下图片的保存都不使用DBImage,而用Image
然后用TBlobStream将图片保存到数据库中
具体细节我记不清楚了,现在在网吧,明天给你

解决方案 »

  1.   

    begin
      if OpenPictureDialog1.Execute then
      begin
        table1.Edit;
        //DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
        //使用TBLOBFIELD类实现保存图象
        TBlobField(table1.FieldByName('bmp')).LoadFromFile(OpenPictureDialog1.FileName);
        table1.Post;
      end;
    end;
      

  2.   

    procedure TDM.ViewPhoto(ImagX:TImage;FiledX:TBlobField);
    var
        B:Tbitmap;
        JpegImage:TJpegImage;
        BS:TBlobStream;
    begin
        ImagX.Picture.Assign(nil);
        if not FiledX.IsNull then begin
            try//如果是Jpeg格式
               BS := TBlobStream.Create(TBlobField(FiledX), bmRead);
               JpegImage := TJpegImage.Create;
               JpegImage.JPEGNeeded;
               JpegImage.LoadFromStream(BS);
               ImagX.Picture.Assign(JpegImage);
               JpegImage.Free;
               BS.Free;
            except//如果是BMP格式
               BS := TBlobStream.Create(TBlobField(FiledX), bmRead);
               B:=Tbitmap.Create;
               b.LoadFromStream(BS);
               ImagX.Picture.Assign(b);
               B.Free;
               BS.Free;
            end;
        end;
    end;