我从数据库中取值,想通过得到不同的数据类型作不同的操作。
怎样得到任意数据的类型?怎样做类型的判断?

解决方案 »

  1.   

    你从数据库读出来的数据与你在表中设置的数据类型一样。你用变体好了,就可以解决。
    COleVariant 他有个属性来指明现在的数据类型然后做出处理就可以了。
      

  2.   

    你可以用_variant_t类型,他有一个成员变量叫VT,它的值就表明值的类型。详细的可以去MSDN上看看。
    或者可以用ADO的Field对象的GetType()方法得到字段的类型。
      

  3.   

    如果是用ADO,举例来说
    _variant_t vTemp;
    if(!pRecordset->adoEOF)
    {
      vTemp = pRecordset->GetCollect(_variant_t(long(0))));/// 取第一个字段
      switch(vTemp.vt){
      case VT_NULL:case VT_EMPTY:AfxMessageBox("空值")break;
      case VT_DATE:AfxMessageBox("日期类型")break;
      case VT_DECIMAL:AfxMessageBox("数字类型")break;
      ... 
      }
      ...
    }
    楼上说的GetType:
    pRecordset->Fields->GetItem(_variant_t(long(0)))->GetType();
    具体类型可以用“tagVARIANT”在MSDN上搜