没有度过,试一试下面的行不
TBlobField(ClientDataSet.FieldByName('data')).LoadFromFile(filename);

解决方案 »

  1.   

    ClientDataSet.Params[0].LoadFromFile(FileName);
      

  2.   

    在客户端load一个图片传递给应用层,由引用层存入sqlserver数据库 字段类型img
      

  3.   

    look my note.
    at ocean617...
      

  4.   

    ocean617(海洋)请给我您发贴子的贴子号,ok?
      

  5.   

    以Variant与Stream结合,可以实现。
      

  6.   

    to:
    blackfiles(从来是我伤心) 
    请问怎么结合能否详细点,谢谢!
      

  7.   

    发两个过程给你参考:
    procedure PutImageintoDB(car_id:string;tempQuery:TQuery); 
    var                 //图片保存到数据库     注意这里是JPG格式的图片
       buf2,buf:pchar;
       f1:file;
       filelen:integer;
    begin
         try
             buf2:=pchar(car_id);;
             assignfile(f1,car_id+'.jpg');
             reset(f1,1);
             filelen:=filesize(f1);
             buf:=allocmem(filelen);
             blockread(f1,buf^,filelen);
             closefile(f1);
             with tempQuery do begin
                  close;
                  with SQL do begin
                       Add('insert into carinimage values(:cim_id,:cim_image)');
                  end;
             end;
             try
                tempQuery.ParamByName('cim_id').DataType:=ftString;
                tempQuery.ParamByName('cim_id').SetData(buf2);
                tempQuery.ParamByName('cim_image').SetBlobData(buf,filelen);
                tempQuery.ExecSQL;
             except
             end;
             buf2:=nil;
             freemem(buf);
         except
         end;
    end;
    procedure GetImagefromDB(car_id:string;tempQuery:TQuery);
    begin                    //从数据库中取出图片
         with tempQuery do begin
              close;
              with SQL do begin
                   clear;
                   Add('select cim_image from carinimage where cim_id='''+car_id+'''');
              end;
              Open;
         end;
         (tempQuery.FieldByName('Cim_image') as tblobfield).savetofile(car_id+'.jpg');
    end;
      

  8.   

    to:8341(八三四一):
    1 您来说说数据库是用来存什么的
    2 您凭什么认为图片存入数据库没有价值呢?
    3 调图片的方法您给举上几种,ok?
      

  9.   

    sqlserver 的 img 字段中放入的是 jpg 图版会读不出,用 BMP会正常
      

  10.   

    这是两层下的写法,修改一下就可以成为3层的了://保存 
    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; 
     
    //BMP转换为JPG 
    procedure TStuXXSLForm.LoadImageBitBtnClick(Sender: TObject); 
    var 
      MyJpeg:TJpegImage; 
    begin 
      inherited; 
      if OpenPictureDialog1.Execute then 
      begin 
        FileName:=OpenPictureDialog1.FileName; 
        Image1.Picture.LoadFromFile(FileName); 
        if ExtractFileExt(FileName)='.Bmp' then 
        begin 
          MyJpeg:= TJpegImage.Create; 
          MyJpeg.Assign(Image1.Picture.Bitmap); 
          FileName:='Photo.Jpg'; 
          MyJpeg.SaveToFile(FileName); 
          MyJpeg.Free; 
        end; 
      end; 
    end;