要实现的功能:将olecontainer中的word文档,转换成html,并将html文件以二进制形式存入数据库中。
我目前的做法:
olecontainer1.Save(savepath+'test.doc',true);
wordapplication1.Connect;
wordapplication1.Visible := false;
filename1:=savepath+test.doc;
WordApplication1.Documents.Open(FileName1,ConfirmConversions,
        ReadOnly,AddToRecentFiles,othervar,
        othervar,Revert,othervar,othervar,
        Format,Template,Template,Template,Template,Template);
worddocument1.ConnectTo(wordapplication1.Documents.Item(ItemIndex));
worddocument1.saveas(htmlname1,Formathtml);
worddocument1.Free;
wordapplication1.Free;
AdoQuery1.Parameters.ParamByName('question').LoadFromFile(htmlname1,ftblob);//......a
存在的问题:
1、文件格式转换过程比较慢(这个还可以忍受);
2、虽然释放了wordapplication和worddocumnet,但是执行到a处的代码的时,经常会出错“打开文件失败,因为另一个程序正在使用该文件。”
针对以上两个问题烦请各位大虾支招!小弟不胜感激!

解决方案 »

  1.   

    执行到loadfromfile确切的错误提示是'另一程序正在使用此文件,进程无法访问.'
    请大家帮忙!
      

  2.   

    olecontainer应该有SaveToStream方法.然后数据集的CreateBlobStream方法建立一个Stream.
    其它的很简单了,这里的贴子多的是.
      

  3.   

    to jjwwang
    这样的话存的是doc格式的二进制流,我需要存成html格式的
      

  4.   

    SORRY,没看清楚.只看标题了.
    2、虽然释放了wordapplication和worddocumnet,但是执行到a处的代码的时,经常会出错“打开文件失败,因为另一个程序正在使用该文件。”
    不要直接free.
    worddocument1.close;
    wordapplication1.disconnect.