如何用query控件把一个图片存入到sqlserver库里面啊?

解决方案 »

  1.   

    TMemoryStream ms;
    Image1.Picture.SaveToFile('c:\temp.bmp');
    ms.LoadFromFile('c:\temp.bmp');
    ms.Position := 0;
    Query1.Close();
    Query1.SQL.Text := "Update TestLob Set BBlob = :P
                         Where Name = '1' ";
    Query1.Parameters.ParamByName("P").LoadFromStream(ms,ftBlob);
    Query1.Prepared := True;
    Query1.ExecSQL();
      

  2.   

    使用Table控件可以实现!!!
      

  3.   

    你可以只存一个路径(图片)的,
    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;
      

  4.   

    http://www.csdn.net/expert/topic/973/973247.xml?temp=.441189
      

  5.   

    with Query1 do 
          begin 
            close; 
            sql.clear; 
            sql.add('insert into img (imga) values(:imag)'); 
          end; 
        Query1.ParamByName('Imag').LoadfromFile(FileName,ftGraphic) 
        Query1.ExecSQL;