_variant_t Holder;
 _RecordsetPtr CSet;
char vch;  
..... 
Holder=CSet->GetCollect((_bstr_t)_T("userRole"));
USES_CONVERSION;
vch=(char)(Holder.cVal);
AfxMessageBox(vch);
userRole的数据类型为char,可是依照上面的写法,根本取不到数据库中的“userRole”数据,请问应该怎么写啊??谢谢!!

解决方案 »

  1.   

    Holder = theApp.m_pADOSet->GetCollect("userRole");
     str = Holder.vt==VT_NULL?"":(char *)(_bstr_t)Holder;
      

  2.   

    CString str;if(Holder.vt!=VT_NULL)
    {
      str = (LPCTSTR)(_bstr_t)Holder;
    }AfxMessageBox(vch);Messabebox的参数好像是个字符窜,不是单个字符
      

  3.   

    Holder = theApp.m_pADOSet->GetCollect("userRole");
    请问要把Holder转化成int型的应该怎么写?
      

  4.   

    CString str;if(Holder.vt!=VT_NULL)
    {
      str = (LPCTSTR)(_bstr_t)Holder;
    }int bb;
    bb = atoi(str);
      

  5.   

    Holder = theApp.m_pADOSet->GetCollect("userRole");
    int i = Holder.intVal; //如果数据库中userRole是整形之类的。
      

  6.   

    int i= (int)Holder;
    BOOL b= (bool)Holder;
    COleDateTime  date= Holder.date;
    float f=(float)Holder;
      

  7.   


    Holder = theApp.m_pADOSet->GetCollect("userRole");
    CString str = Holder.vt==VT_NULL?"":(char *)(_bstr_t)Holder;int i = Holder.intVal;//这个最好不要用,我使用这种,有时候返回一个莫名其妙的整数,和数据库//里的对不上号
      

  8.   

    char型
    Holder = theApp.m_pADOSet->GetCollect("userRole");
    CString a = Holder.bstrVal;
      

  9.   

    写到数据集里
    CString str;
    pSet->Fields->GetItem("***")->PutValue(str.AllocSysString());
    其它:
    pSet->Fields->GetItem("**")->PutValue((_variant_t)OtherType);