各位大虾!help me!
我快被折磨死了
我用oracle数据库对word文档的读取,修改操作
例如:
从本地硬盘上读取word文档,保存到数据库中,
从数据库中读取word文档,修改后,保存到数据库中救命啊!!!
源代码发一份 [email protected]
我快被折磨死了
我用oracle数据库对word文档的读取,修改操作
例如:
从本地硬盘上读取word文档,保存到数据库中,
从数据库中读取word文档,修改后,保存到数据库中救命啊!!!
源代码发一份 [email protected]
server页的组件可以控制word
var
i:integer;
temS:TMemoryStream;
temB:TStringStream;
QuStr:TQuery;
begin
if FileExists(format('%s'+'zqglls.doc',[MTemp.TempDF])) then //MTemp.TempDF为工作目录
begin
OCWord.CreateObjectFromFile(format('%s'+'zqglls.doc',[MTemp.TempDF]),false);
temS:=TMemoryStream.Create;
temS.LoadFromFile(format('%s'+'zqglls.doc',[MTemp.TempDF]));//zqglls.doc为将要上传的文件
temS.Seek(0, soFromBeginning);
TemB:=TStringStream.Create('');
temS.SaveToStream(temB);
TemB.Position:=0;
temS.Free;
QuStr:=TQuery.Create(self);
with QuStr do
begin
DataBaseName:='zqgle';
SQL.Add('update dbo.TZLSYG set TZLSYG=:image where DWDM='''+MTemp.UC+''';');//MTemp.UC指定上传点
Parambyname('Image').AsBlob:=Temb.DataString;
ExecSQL;
free;
end;
temB.Free;
showmessage('上传完成');
end;
end
else
showmessage('没有文件可供上传');
end;
此代码上传30M巨型文件测试成功.
TBlobField(FieldByName('TZLSYG')).SaveToFile(format('%s'+'zqglls.doc',[MTemp.TempDF]));//MTemp.TempDF为工作目录
但是请记住使用TTable来处理,使用TQuery有8K限制,不适合处理大字段。
多谢大侠的指点,我有一点的补充问题是能浏览、修改word文件,修改后的文件提供
保存到数据库的功能再给小弟一点提示
[email protected]
显示文件:(从磁盘中打开word文件)
OleContainer.CreateObjectFromFile(OpenDialog1.FileName,True);
OleContainer1.DoVerb(1);
但是在createobjectFromFile时,有时候word提示安装什么转换器,不能正常的打开文件。
保存文件:
var
OleStream : TMemoryStream;
OleStream := TMemoryStream.Create;
OleContainer1.SaveToStream(OleStream);
OleStream.Position := 0; //回零点
ADOTable1.Append;
(ADOTable1.FieldByName('FiledName') as TBlobField).LoadFromStream(OleStream);
ADOTable1.Post ;
从数据库中提取文件
OleStream := TMemoryStream.Create;
(ADOQuery1.FieldByName('FiledName') as TBlobField).SaveToStream(OleStream);
OleStream.Position := 0;
OleContainer1.LoadFromStream(OleStream);
OleContainer1.DoVerb(1); 各位大虾看看有没有错误的地方啊?
帮助我完善一下!!!
多谢了