WEB开发网
开发学院软件开发VC 使用ADO实现BLOB数据的存取 -- ADO开发实践之二... 阅读

使用ADO实现BLOB数据的存取 -- ADO开发实践之二

 2006-07-22 11:16:58 来源:WEB开发网   
核心提示: ///假设m_pBMPBuffer指针指向一块长度为m_nFileLen的二进制数据,并且已经成功打开了记录集对象m_pRecordset///char*pBuf = m_pBMPBuffer;VARIANTvarBLOB;SAFEARRAY*psa;SAFEARRAYBOUNDrgsab

///假设m_pBMPBuffer指针指向一块长度为m_nFileLen的二进制数据,并且已经成功打开了记录集对象m_pRecordset///
char    *pBuf = m_pBMPBuffer;
VARIANT    varBLOB;
SAFEARRAY  *psa;
SAFEARRAYBOUND  rgsabound[1];
m_pRecordset->AddNew();                       ///添加新记录
m_pRecordset->PutCollect("username",_variant_t("小李"));       ///为新记录填充username字段
m_pRecordset->PutCollect("old",_variant_t((long)28);         ///填充old字段
if(pBuf)
{  
  rgsabound[0].lLbound = 0;
  rgsabound[0].cElements = m_nFileLen;
  psa = SafeArrayCreate(VT_UI1, 1, rgsabound);           ///创建SAFEARRAY对象
  for (long i = 0; i < (long)m_nFileLen; i++)
   SafeArrayPutElement (psa, &i, pBuf++);             ///将pBuf指向的二进制数据保存到SAFEARRAY对象psa中
  varBLOB.vt = VT_ARRAY | VT_UI1;                  ///将varBLOB的类型设置为BYTE类型的数组
  varBLOB.parray = psa;                       ///为varBLOB变量赋值
  m_pRecordset->GetFields()->GetItem("photo")->AppendChunk(varBLOB);///加入BLOB类型的数据
}
m_pRecordset->Update();                       ///保存我们的数据到库中

至此我们的数据已经成功地保存到了数据库中,接下来我们所要做的工作便是将该数据提取出来,让我们继续吧!

Tags:使用 ADO 实现

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