我每次从数据库中把Word文档从image字段下到客户端,然后用Word打开。都很正确,可是如果我要是手动把word关掉,再次执行代码就会出现“无法创建终结点"错误.
源代码如下:WA1即WordApplication------------------------------------------------------------
procedure Twin_School_PrepareLesson_Edit.Btn_ViewDocClick(Sender: TObject);
var
l_filename: olevariant;
l_save: olevariant; l_Adods:TAdodataSet;
l_Title:widestring;
begin
inherited;
l_save:=false;
try
WA1.Connect;
except
MessageDlg('您的计算机没有安装Word,如果要运行本系统必须安装Word2000或更高版本', mtError, [mbOk], 0);
exit;
end;
l_Adods:=dm_main.AdoDS_public; if WA1.Documents.Count>0 then ////////再次打开时错误出现在这里
~~~~~~~~~~~~~~~~~~~~~~~~~~~```
WA1.ActiveDocument.Close(l_save,EmptyParam,EmptyParam); l_Adods.Active:=false;
l_Adods.CommandText:='Select * from School_PrepareLesson where ID='''+Adods_PrepareLesson['ID']+'''';
l_Adods.Active:=true;
if(l_Adods.RecordCount<1) then
begin
ShowMessage('调试:没有Word记录!');
end;
(l_Adods.Fieldbyname('正文') as TBLOBField).SaveToFile(ExtractFilePath(ParamStr(0))+'ViewDoc.doc');
l_Title:=Adods_PrepareLesson['标题']+'-----作者:'+Adods_PrepareLesson['姓名'];
l_Adods.Active:=false;
l_fileName:=ExtractFilePath(ParamStr(0))+'ViewDoc.doc';(filename,confirmconversions,Readonly,addtorecentfiles,passworddocument, passwordtemplate,revert, writepassworddocument, writepasswordtemplate, format,,);
Wa1.Documents.Open(l_FileName, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);
wa1.Caption:=l_Title;
wa1.Visible:=true;
end;-------------------------------------谢谢
源代码如下:WA1即WordApplication------------------------------------------------------------
procedure Twin_School_PrepareLesson_Edit.Btn_ViewDocClick(Sender: TObject);
var
l_filename: olevariant;
l_save: olevariant; l_Adods:TAdodataSet;
l_Title:widestring;
begin
inherited;
l_save:=false;
try
WA1.Connect;
except
MessageDlg('您的计算机没有安装Word,如果要运行本系统必须安装Word2000或更高版本', mtError, [mbOk], 0);
exit;
end;
l_Adods:=dm_main.AdoDS_public; if WA1.Documents.Count>0 then ////////再次打开时错误出现在这里
~~~~~~~~~~~~~~~~~~~~~~~~~~~```
WA1.ActiveDocument.Close(l_save,EmptyParam,EmptyParam); l_Adods.Active:=false;
l_Adods.CommandText:='Select * from School_PrepareLesson where ID='''+Adods_PrepareLesson['ID']+'''';
l_Adods.Active:=true;
if(l_Adods.RecordCount<1) then
begin
ShowMessage('调试:没有Word记录!');
end;
(l_Adods.Fieldbyname('正文') as TBLOBField).SaveToFile(ExtractFilePath(ParamStr(0))+'ViewDoc.doc');
l_Title:=Adods_PrepareLesson['标题']+'-----作者:'+Adods_PrepareLesson['姓名'];
l_Adods.Active:=false;
l_fileName:=ExtractFilePath(ParamStr(0))+'ViewDoc.doc';(filename,confirmconversions,Readonly,addtorecentfiles,passworddocument, passwordtemplate,revert, writepassworddocument, writepasswordtemplate, format,,);
Wa1.Documents.Open(l_FileName, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);
wa1.Caption:=l_Title;
wa1.Visible:=true;
end;-------------------------------------谢谢
解决方案 »
- 想问下Object Inspector是什么
- 关于CANVAS作为参数传递的问题
- 怎样得到TcxGridDBTableView的多选的记录, 并且全部删除这些记录?(MultiSelect=True)
- 如何取网页源代码?包含有iframe框架的情况下
- 小弟,刚学报表能不能发一些例子和源码给小弟呢?
- fastReport里面怎么添加自定义函数? (有帮助,不知道怎么用)
- 请问:在dbgrid控件中为何有的列不能显示字段的内容,而显示为(MEMO)
- 有没有谁在线啊?qq上帮帮忙好不好?
- 用vb/vc编写的com组件中的接口方法返回的ado的recordset(类型olevariant),delphi怎么使用这个记录集?
- Application.Terminate 结束程序出现非法操作, 答者有分.
- 如何将QUERY查询出来的值输出到TXT或XLS,最好提供简单的例子
- 一个关于 TListView 和 ImageList 结合的问题
var
SaveChanges,
OriginalFormat,
RouteDocument: OleVariant;
begin
SaveChanges := WdDoNotSaveChanges;
OriginalFormat := UnAssigned;
RouteDocument := UnAssigned;
try
//WordApplication.Saved:=true;
WordApplication.Quit(SaveChanges, OriginalFormat, RouteDocument);
WordApplication.Disconnect;
except
on E: Exception do
begin
Showmessage(E.Message);
WordApplication.Disconnect;
end;
end;
end;