怎么实现WORD文档导入到数据库
如何实现WORD文档导入到数据库
delphi 7.0
数据库用sql2000
RT,怎么实现添加WORD文档到数据库中?
------解决方案--------------------
delphi 7.0
数据库用sql2000
RT,怎么实现添加WORD文档到数据库中?
------解决方案--------------------
- Delphi(Pascal) code
sql := 'UPDATE tab SET BGZW=:file' + ' where XTAJBH=''' + case_id + ''''; execInt := DataModule_sys.ExecLobUpdate(sql, 'file', self.Edit_text.Text); //self.Edit_text.Text word 文档的路径和名称 // BGZW 数据库大字段 function TDataModule_sys.ExecLobUpdate(sql: string; LobName: string; FileName: string): Integer; begin try if self.ADOQuery1.Active then self.ADOQuery1.Close; self.ADOQuery1.Prepared := true; self.ADOQuery1.ParamCheck := true; self.ADOQuery1.SQL.Text := sql; ADOQuery1.Parameters.ParamByName(LobName).LoadFromFile(FileName, ftBlob); ADOQuery1.ExecSQL; result := self.ADOQuery1.ExecSQL; finally self.ADOQuery1.Prepared := false; self.ADOQuery1.ParamCheck := false; self.ADOQuery1.Close; end; // (ADOQuery1.FieldByName('aaa') as TGraphicField) end;
------解决方案--------------------
网上找的代码,经过测试后修改了一下
在数据库上使用Image二进制字段保存,使用Stream流的方式。
创建文件流:
Word_FileStream:=TMemoryStream.Create;
Word_FileStream.Position:=0;
保存到数据库的Image字段:
Word_FileStream.LoadFromFile('c:\wordfile.DOC');
TBlobField(AdoQuery1.FieldByName(Column_Name)).loadfromStream(Word_FileStream);
从数据库读取文件到本地硬盘:
TBlobField(ADOQuery1.FieldByName(Column_Name)).SaveToStream(Word_FileStream);
Word_FileStream.SavetoFile('c:\wordfile.DOC');
释放文件流:
Word_FileStream.Free;