Oracle有一字段定义为number(6,2),用sql plus显示该字段值为2.2
然而使用rs->GetCollect("txbskd").fltVal;得到的值永远为0.00
表里肯定是2.2
所有记录取出均为0.00
这是什么原因,望指教
谢谢

解决方案 »

  1.   

    你这么做不对的,要这样 _variant_t   vtVal;   
     vtVal=rst->GetCollect(_variant_t("txbskd"));  然后根据vtVal.vt判断是什么类型,然后用相对应的变量类型来接收short   VT_I2 
    long   VT_I4 
    double  VT_R8 
      

  2.   

    number用GetCollect得到都是double类型的dblVal
      

  3.   

    var=rs->GetCollect(_variant_t("txbskd"));
      switch(var.vt)  
      {  
      case VT_I2:MessageBox("a");break;  
      case VT_I4:MessageBox("b");break;  
      case VT_R4:MessageBox("c");break;  
      case VT_R8:MessageBox("d");break; 
      default:MessageBox("kkk");
      } 
    所有记录均显示kkk
    但在sql plus中看到txbskd字段的值为右对齐的1.11,2.22等值
    奇怪,望指教,谢谢
      

  4.   

    var.vt 的值是多少????
      

  5.   

    调试的时候看一下var.vt的值.........double类型的应该是VT_R8才对......