比如说我有一个c++对象需要保存到数据库中的一个字段中,
我想把该对象Serialize()后的CArchive保存到数据库中, if (m_pPropObj == NULL)
return false; CDocument DocObj;
CString lpszPathName=CPlantLib::getLibPath();//得到工作路径
lpszPathName=lpszPathName + "\\" + "temp.txt";
CFileException fe;
CFile* pFile = NULL;
pFile = DocObj.GetFile(lpszPathName, CFile::modeCreate |
CFile::modeReadWrite | CFile::shareExclusive, &fe);
if (pFile == NULL)
{
DocObj.ReportSaveLoadException(lpszPathName, &fe,
TRUE, AFX_IDP_INVALID_FILENAME);
return FALSE;
} BYTE myBuffer[65536];
ULONG cbSize = 65536;
CArchive saveArchive(pFile, CArchive::store | CArchive::bNoFlushOnDelete, cbSize,myBuffer);//保存数据 saveArchive.m_pDocument = &DocObj;
saveArchive.m_bForceFlat = FALSE;
m_pPropObj->Serialize(saveArchive);
DWORD dwLength = pFile->GetLength();
m_nCountData = dwLength;
if (m_pData != NULL)//m_pData是一个BYTE的指针,用它向数据库中写数据
delete m_pData;
m_pData = new BYTE[dwLength];
for(int i=0;i<dwLength;i++)
{
m_pData[i] = myBuffer[i];
}
saveArchive.Close();
DocObj.ReleaseFile(pFile, FALSE);但是这样好象不行?pFile->GetLength()时就会得到0?
到底要怎么样做才能保存对象到数据库中那??
我想把该对象Serialize()后的CArchive保存到数据库中, if (m_pPropObj == NULL)
return false; CDocument DocObj;
CString lpszPathName=CPlantLib::getLibPath();//得到工作路径
lpszPathName=lpszPathName + "\\" + "temp.txt";
CFileException fe;
CFile* pFile = NULL;
pFile = DocObj.GetFile(lpszPathName, CFile::modeCreate |
CFile::modeReadWrite | CFile::shareExclusive, &fe);
if (pFile == NULL)
{
DocObj.ReportSaveLoadException(lpszPathName, &fe,
TRUE, AFX_IDP_INVALID_FILENAME);
return FALSE;
} BYTE myBuffer[65536];
ULONG cbSize = 65536;
CArchive saveArchive(pFile, CArchive::store | CArchive::bNoFlushOnDelete, cbSize,myBuffer);//保存数据 saveArchive.m_pDocument = &DocObj;
saveArchive.m_bForceFlat = FALSE;
m_pPropObj->Serialize(saveArchive);
DWORD dwLength = pFile->GetLength();
m_nCountData = dwLength;
if (m_pData != NULL)//m_pData是一个BYTE的指针,用它向数据库中写数据
delete m_pData;
m_pData = new BYTE[dwLength];
for(int i=0;i<dwLength;i++)
{
m_pData[i] = myBuffer[i];
}
saveArchive.Close();
DocObj.ReleaseFile(pFile, FALSE);但是这样好象不行?pFile->GetLength()时就会得到0?
到底要怎么样做才能保存对象到数据库中那??
解决方案 »
- 基于对话框的程序(疑问)
- 如何知道bind的任意端口实际是多少
- 各位大侠,该内存不能为“Written”
- lfHeight跟字体大小怎么转换?
- 高分请教一个SOCKET服务器的设计问题
- 想学控件编程,可惜外文很差,想找一本旧书《OLE 2 对象链接与嵌入技术高级编程技术》
- 服务中调用BitBlt失败,为何???
- 急!!! VC中连接Informix数据库问题
- 如何把一个char *的内容全部变为大写? 如何取char *从左面开始的1-n个字符子串?
- 如何把一个string字符串,如2010-07-08-12-00,转换成int型数据?
- TAB不按照事先设置的TAB顺序在各个控件之间跳动(如button,edit...)
- 图片加载
http://www.vckbase.com/document/viewdoc/?id=719