var
DS:TADOBlobStream;begin
DS := TADOBlobStream.Create
((ADOTABLE1.FieldByName('WORDDOC') as TBlobField),bmRead);
OleContainer1.LoadFromStream( DS );
DS.Free;
end;
DS:TADOBlobStream;begin
DS := TADOBlobStream.Create
((ADOTABLE1.FieldByName('WORDDOC') as TBlobField),bmRead);
OleContainer1.LoadFromStream( DS );
DS.Free;
end;
那又如何读取存放的Microsoft Word 文档呢?还有其他文档呢?
TBlobField(AdoTable1.FieldByName('Data')).LoadFromFile()
TBlobField(AdoTable1.FieldByName('Data')).SaveToFile()
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;