发现一个问题,版上一碰到blob,clob问题,回复的人就很少。
我的好几个clob问题都积压在那里了,给多少分都没用!

解决方案 »

  1.   

    long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize;
    if(lDataSize > 0)
    {
             _variant_t varBLOB;
    varBLOB = m_pRecordset->GetFields()->GetItem("photo")->GetChunk(lDataSize);
    if(varBLOB.vt == (VT_ARRAY | VT_UI1))
    {
    if(m_pBMPBuffer = new char[lDataSize+1]) ///重新分配必要的存储空间
    {
    char *pBuf = NULL;
    SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
    memcpy(m_pBMPBuffer,pBuf,lDataSize);             ///复制数据到缓冲区m_pBMPBuffer
    SafeArrayUnaccessData (varBLOB.parray);
    }
    }
    }
    通过上面的代码可以访问记录集m_pRecordset的photo字段,是一个blob类型的字段,该字段的值被读到m_pBMPBuffer中,随便你操作