var
DS:TADOBlobStream;begin
    DS := TADOBlobStream.Create
      ((ADOTABLE1.FieldByName('WORDDOC') as TBlobField),bmRead);
    OleContainer1.LoadFromStream( DS );
    DS.Free;
end;

解决方案 »

  1.   

    上面的方法我解决了文本文件的存储,
    那又如何读取存放的Microsoft Word 文档呢?还有其他文档呢?
      

  2.   

    用法都一样的。
    TBlobField(AdoTable1.FieldByName('Data')).LoadFromFile()
    TBlobField(AdoTable1.FieldByName('Data')).SaveToFile()
      

  3.   

    给你个事例:表:大文本模板:类别varchar(50) 模板:image调入外部doc文件:
    procedure TForm1.BtnOpenClick(Sender: TObject);
    begin
      if OpenDialog1.Execute then
        OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false);
    end;保存模板:
    procedure TForm1.BtnSaveModalClick(Sender: TObject);
    begin
      OleContainer1.SaveToFile('tmp.doc');
      Adoquery1.Close;
      Adoquery1.SQL.Clear;
      Adoquery1.SQL.Add('update 大文本模板 set 模板=:CC where 类别=''值班记录''');
      Adoquery1.Parameters.ParamByName('CC').LoadFromFile('tmp.doc',ftBlob);
      Adoquery1.ExecSQL;  //通过
    end;新增记录:
    procedure TForm1.BtnAddClick(Sender: TObject);
    begin
      Adoquery1.Close;
      Adoquery1.SQL.Clear;
      Adoquery1.SQL.Add('select 模板 from 大文本模板 where 类别=''值班记录''');
      Adoquery1.Open;
      (Adoquery1.FieldByName('模板') as TBlobField).SaveToFile('tmp.doc');
      OleContainer1.CreateObjectFromFile(path+'tmp.doc',false);//路径自己加
    end;保存记录:
    procedure TForm1.BtnSaveClick(Sender: TObject);
    begin
      OleContainer1.SaveAsDocument'tmp.doc');
      Adoquery1.Close;
      Adoquery1.SQL.Clear;
      Adoquery1.SQL.Add('insert into 值班记录(情况) values(:CC)');
      Adoquery1.Parameters.ParamByName('cc').LoadFromFile('tmp.doc',ftBlob);
      Adoquery1.ExecSQL;
    end;