WEB开发网
开发学院软件开发VC Ado 实现C++对象的存取 阅读

Ado 实现C++对象的存取

 2006-07-23 11:19:25 来源:WEB开发网   
核心提示: 四、CLine对象的读取 void CTestAdoDlg::OnSelchangeListData(){int iPos = m_List.GetCurSel();if (iPos<0) return ;m_pSet->MoveFirst();int i=0;while (i

四、CLine对象的读取 void CTestAdoDlg::OnSelchangeListData()
{
  int iPos = m_List.GetCurSel();
  if (iPos<0) return ;
  m_pSet->MoveFirst();
  
  int i=0;
  while (i< iPos)
  {
    m_pSet->MoveNext();
    i++;
  }
  long lDataSize = m_pSet->GetFields()->GetItem(_variant_t("object"))->ActualSize;
  if(lDataSize <= 0) return;
  
  _variant_t varBLOB;
  VariantInit (&varBLOB);
  
  varBLOB = m_pSet->GetFields()->GetItem(_variant_t("object"))->GetChunk(lDataSize);
  if(varBLOB.vt == (VT_ARRAY | VT_UI1))
  {
    BYTE *pBuf = new BYTE[lDataSize + 1];
    if(pBuf)
    {
      SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
      SafeArrayUnaccessData (varBLOB.parray);
      
      CMemFile memfile;
      memfile.Attach(pBuf,lDataSize);
      memfile.SeekToBegin();
      CArchive ar(&memfile, CArchive::load);
      
      m_Line.Serialize(ar);
      ar.Close();
      memfile.Detach();
      CRect rc = GetRect(IDC_STATIC_RECT);
      InvalidateRect(rc);
    }
  }
  VariantClear (&varBLOB);
}    

五、结束语

以上充分利用了串行化来实现c++对象保存到数据库,对以上方法稍做扩展对图象的保存到数据库,甚至多个图象文件保存到数据库和文件。

(很抱歉:我实在不想写文字说明了,如果有什么问题不清楚,跟我联系好了!!哎)

QQ:36201365

e-mail:ldh5118@sohu.com

上一页  1 2 3 4 

Tags:Ado 实现 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接