如何把sql server数据库中的blob字段中的数据读到文件流中呢

解决方案 »

  1.   

    var
      MyStream:TFileStream;
    begin
      MyStream:=TFileStream.create('c:\Yourfile.dat');  
      TBlobField(AdoQuery1.FieldbyName('文件流列')).SaveToStream(MyStream);
    end;
      

  2.   

    更正:
    var
      MyStream:TFileStream;
    begin
      MyStream:=TFileStream.create('c:\Yourfile.dat',mCreate);  
      TBlobField(AdoQuery1.FieldbyName('文件流列')).SaveToStream(MyStream);
    end;
      

  3.   

    var
      MyStream:TFileStream;
    begin
      MyStream:=TFileStream.create('c:\Yourfile.dat',fmCreate);  
      TBlobField(AdoQuery1.FieldbyName('文件流列')).SaveToStream(MyStream);
    end;//不好意思,又丢一个字
      

  4.   

    procedure TdjhyForm.SpeedButton1Click(Sender: TObject);
        var
        sfilename:string;
        bs:Tadoblobstream;
        begin
          bs:=Tadoblobstream.Create(TBLOBfield(DataModule1.ADOQuery14.FieldByName('word')),bmread);
          try
            sfilename:=extractfilepath(application.ExeName)+trim(DataModule1.adoquery14.fieldbyname('hybh').AsString);
            sfilename:=sfilename+'.'+'doc';
            bs.SaveToFile(sfilename);
            try
              djhyopenform:=Tdjhyopenform.Create(self);
              djhyopenform.olecontainer1.CreateObjectFromFile(sfilename,false);
              djhyopenform.OleContainer1.Iconic:=true;
              djhyopenform.ShowModal;
            finally
              djhyopenform.Free;
            end;
          finally
            bs.free;
          end;
        end;