如题。我用的语句是:
TBlobField().loadfromStream(Stream1);
但好像把原来的数据覆盖掉了,正确的用法是什么呢?

解决方案 »

  1.   

    var   
              MS_JpegStream:TMemoryStream;   
              M_BitMap:TBitMap;   
              M_Jpeg:TJpegImage;   
        
        
      procedure   TinsertForm.buttonSelectClick(Sender:   TObject);   
      var   
      filename:string;   
      begin   
      image1.Picture.LoadFromFile('');   
      if   OpenDialog1.Execute   then   
      begin   
        
                      filename:=extractfileext(OpenDialog1.FileName);   
        
                      image1.Picture.LoadFromFile(OpenDialog1.FileName);   
        
                        
                      MS_JpegStream:=TMemoryStream.Create;   
                      M_BitMap:=TBitMap.Create;   
                      M_Jpeg:=TJpegImage.Create;   
              if   (filename='.bmp')   or   (filename='.BMP')   then   
                  begin   
                      M_BitMap.LoadFromFile(OpenDialog1.FileName);   
                      M_Jpeg.Compress;   
                      M_Jpeg.Assign(M_BitMap);   
                  end   
              else   if   (filename='.jpg')   or   (filename='.JPG')   then   
                  begin   
                      M_Jpeg.LoadFromFile(OpenDialog1.FileName);   
                  end;   
              M_Jpeg.SaveToStream(MS_JpegStream);   
      end;   
      end;   
        
      procedure   TinsertForm.btnSaveClick(Sender:   TObject);   
      begin   
      //插入新的记录   
      try   
      adoquery1.close;   
      adoquery1.SQL.Clear;   
      adoquery1.SQL.Add('insert   into   hm_jc_dxal(tupian)values');   
      adoquery1.SQL.Add('(:tupian)');   
      adoquery1.Parameters.ParamByName('tupian').LoadFromStream(MS_JpegStream,ftblob);   
      adoquery1.ExecSQL;   
        
      ShowMessage('资料成功保存!');   
      MS_JpegStream.Free;   
      M_BitMap.Free;   
      M_Jpeg.Free;   
      except   
      ShowMessage('资料保存失败!!');   
      end;   
      end;   
      end;   
      

  2.   

    LoadFromStream(MS_JpegStream,ftblob);  
    中的参数ftblob是什么?
      

  3.   

    用流读出字段,在从另个流拷贝,然后保存流。copyfromStream()
      

  4.   

    我是用这种方法,步骤是:
    1.创建一个filestream,把一个文件写入;
    2.由于文件比较大,创建一个memorystream,每次读入10m字节;
    3.把这个10m的memorystream用loadfromStream方法存入一个blob字段,并清空memorystream;
    4.循环步骤2、3,直到把大文件完全读入blob字段。
    但结果结果有问题,只能得到最后一次写入的数据。
      

  5.   

    步骤3用的语句是:TBlobField(FiledByName('abc')).loadfromStream(Stream1);