在ACCESS中有一个很长的OLE字段,怎么使用SQL语句取到其中某一位的值。用的是ADO

解决方案 »

  1.   

    char *m_pBMPBuffer;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);
    }
    }
    }取出OLE数据后,你怎样操作都有行了
      

  2.   

    取出数据已经没有意义了,我需要的是在SQL语句中使用类似substring这样的函数只取其中一部分,全部取出效率太低
      

  3.   

    如果是这样,可能性不太大,你可以到sql server版去看看。