这个OLE字段存储的是word文档
我想能读写这个字段,我用如下的代码段 CString Source = _T("select * from 题库"); try
{
BSTR str = Source.AllocSysString();
m_pRecordset->Open(str,
theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
::SysFreeString(str); if (m_pRecordset->adoEOF)
{
AfxMessageBox(_T("没有数据"));
m_pRecordset->Close();
return;
}
_variant_t varOptional(DISP_E_PARAMNOTFOUND, VT_ERROR);
m_pStream->PutType(adTypeBinary);
m_pStream->Open(varOptional, adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t()); m_pStream->Write(_variant_t(m_pRecordset->GetFields()->GetItem("题干")->Value));
m_pStream->SaveToFile("D:\\1.doc", adSaveCreateOverWrite);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}但读取出来的数据用word文档打开后
不正确
疑问??
我想能读写这个字段,我用如下的代码段 CString Source = _T("select * from 题库"); try
{
BSTR str = Source.AllocSysString();
m_pRecordset->Open(str,
theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
::SysFreeString(str); if (m_pRecordset->adoEOF)
{
AfxMessageBox(_T("没有数据"));
m_pRecordset->Close();
return;
}
_variant_t varOptional(DISP_E_PARAMNOTFOUND, VT_ERROR);
m_pStream->PutType(adTypeBinary);
m_pStream->Open(varOptional, adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t()); m_pStream->Write(_variant_t(m_pRecordset->GetFields()->GetItem("题干")->Value));
m_pStream->SaveToFile("D:\\1.doc", adSaveCreateOverWrite);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}但读取出来的数据用word文档打开后
不正确
疑问??
不过最后保存完后应该关闭stream对象,m_pStream->Close();
我有写
不过上面没附出来
你们有没有写过读写ole(WORD)字段的代码
能不能发段看看
乱码
而且生成的word文档比实际的更大
http://www.vckbase.com/document/viewdoc/?id=719
http://www.vckbase.com/document/viewdoc/?id=252