我在VB下将recordset类型传给vc做的控件,按收接口定义如下:
bool CDataSignCtrl::LoadSignFromRec(_Recordset* pRec)
{
_variant_t fld_EntrBmp;
BSTR m_EntrBmp;
CString m_sBmp; if(pRec->adoEOF)
return false; pRec->MoveFirst(); while(!(pRec->adoEOF))
{
fld_EntrBmp=pRec->GetCollect("ENTR_BMP");
if(fld_EntrBmp.vt==VT_BSTR){
m_sBmp=fld_EntrBmp.bstrVal;
.....
}else{
fld_EntrBmp.ChangeType (VT_BSTR);
long lDataSize = pRec->GetFields()->GetItem("entr_bmp")->ActualSize;
m_sBmp=fld_EntrBmp.bstrVal;
m_EntrBmp=fld_EntrBmp.bstrVal;
..........
}
pRec->MoveNext();
} this->Invalidate();
pRec->MoveFirst();
return true;
}
但lDataSize=-1,而且取出的m_sBmp结果似乎不对。
请问如何改写上面的程序,使之能正确取出image字段的值?
bool CDataSignCtrl::LoadSignFromRec(_Recordset* pRec)
{
_variant_t fld_EntrBmp;
BSTR m_EntrBmp;
CString m_sBmp; if(pRec->adoEOF)
return false; pRec->MoveFirst(); while(!(pRec->adoEOF))
{
fld_EntrBmp=pRec->GetCollect("ENTR_BMP");
if(fld_EntrBmp.vt==VT_BSTR){
m_sBmp=fld_EntrBmp.bstrVal;
.....
}else{
fld_EntrBmp.ChangeType (VT_BSTR);
long lDataSize = pRec->GetFields()->GetItem("entr_bmp")->ActualSize;
m_sBmp=fld_EntrBmp.bstrVal;
m_EntrBmp=fld_EntrBmp.bstrVal;
..........
}
pRec->MoveNext();
} this->Invalidate();
pRec->MoveFirst();
return true;
}
但lDataSize=-1,而且取出的m_sBmp结果似乎不对。
请问如何改写上面的程序,使之能正确取出image字段的值?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货