现在把一个WORD文件存储到数据库中了,然后,在查询到此文件时如何将它打开呢?我尝试用msword,但是木有成功,各位有啥高见哇?

解决方案 »

  1.   

    把它存成一个临时的doc,再用word打开这个临时的doc.
      

  2.   


    能具体的说一下吗?这个问题困扰我好几天了。难道还要去研究office的格式?
      

  3.   


    如何存成一个临时的DOC呢?
      

  4.   

    存到二进制字段的就是word的二进制,从数据库中读取后再存成一个word文件(临时文件),在用word打开这个文件
      

  5.   

    读取数据库数据,用WriteFile()生成一个binary文件,后缀名可以改为.doc
      

  6.   


    现在我把数据库中的数据已经转换成字符串指针了,然后现在就是不懂如何将这个指针存成你所说的Word临时文件新手,希望不吝赐教
      

  7.   


    我试了一下,writeFile()貌似生成的是稳健句柄,木有生成bianry文件哇。
      

  8.   

    我写的是这样的,但是打开的word乱码。,应该也是建了一个临时文件CFile file;
    file.Open("F:\\Project\\MyProject\\ChkProject (二进制流)  - 副本\\1.doc",CFile::modeCreate|CFile::modeWrite);
    file.Write(_T(pBuff),m_DocLen);
    file.Close();

    _Application sapp;
    if(!sapp.CreateDispatch(_T("word.Application")))//启动WORD
    {
    AfxMessageBox("word启动失败!");
    return;
    } _Document sDoc;//文档对象
    Documents sDocs;//文档集合对象,派生于COleDispatchDriver
    sDocs.AttachDispatch(sapp.GetDocuments(),true);//得到文档集合对象attach anIDispatch pointer to the COleDispatchDriver object

    //打开文档对象
    _variant_t FileName(_T("F:\\Project\\MyProject\\ChkProject (二进制流)  - 副本\\1.doc"));
    VARIANT varOptional;
    VariantInit(&varOptional);
    varOptional.vt=VT_ERROR;//指示Scode
    varOptional.scode=DISP_E_PARAMNOTFOUND;
    sDoc=sDocs.Open(&FileName, &varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional); //显示文档并激活文档
    sapp.SetVisible(true);
    sDoc.Activate();
    sapp.ReleaseDispatch();
      

  9.   

    加CFile::typeBinary标志读写文件,比如CFile::modeCreate|CFile::modeWrite|CFile::typeBinary
      

  10.   


    还是不行呢,如果开始是以TXT的形式存储进数据库的,在读取的时候便可以用WORD打开,但是,如果开始是以.doc的格式存储的,便依然是乱码。好无奈。