在 sql server中定义了一个binary类型的字段,长度为512,
使用BLOB的方法读取,如下:Field15Ptr f_ptr = m_pRecordset->GetFields()->GetItem(_variant_t("终端其他信息")) ;
long lDataLength = f_ptr->ActualSize;if (lDataLength>0)
{
_variant_t varBLOB;
varBLOB=f_ptr->GetChunk(lDataLength);
if(varBLOB.vt!=VT_EMPTY && varBLOB.vt!=VT_NULL )
{
BYTE *pBuf = NULL;
pBuf = (BYTE*)GlobalAlloc(GMEM_FIXED,lDataLength);
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(OtherInfo, pBuf, 512) ;
SafeArrayUnaccessData (varBLOB.parray); }
}
在 varBLOB=f_ptr->GetChunk(lDataLength); 处出现异常
如果将字段属性改为TEXT或是image就不会出现异常。
我在网上找了半天,没找到存储binary类型数据的方法
怎么存储和读取binary数组啊???
使用BLOB的方法读取,如下:Field15Ptr f_ptr = m_pRecordset->GetFields()->GetItem(_variant_t("终端其他信息")) ;
long lDataLength = f_ptr->ActualSize;if (lDataLength>0)
{
_variant_t varBLOB;
varBLOB=f_ptr->GetChunk(lDataLength);
if(varBLOB.vt!=VT_EMPTY && varBLOB.vt!=VT_NULL )
{
BYTE *pBuf = NULL;
pBuf = (BYTE*)GlobalAlloc(GMEM_FIXED,lDataLength);
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(OtherInfo, pBuf, 512) ;
SafeArrayUnaccessData (varBLOB.parray); }
}
在 varBLOB=f_ptr->GetChunk(lDataLength); 处出现异常
如果将字段属性改为TEXT或是image就不会出现异常。
我在网上找了半天,没找到存储binary类型数据的方法
怎么存储和读取binary数组啊???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货