none
oracle的number类型在vc++中取出是什么类型 RRS feed

  • 问题

  • oracle中number(6,2)字段"fsgl"的值取出并放入list中
    _variant_t   var;
    var=rs->GetCollect("fsgl");
    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
    现在想做的是将fsgl字段值取出并放入list的一个列中
    望指教,谢谢
    yu
    2009年8月22日 5:15

答案

  • a variant type of 14 is a VT_DECIMAL (a 16 byte fixed point number).
    麻烦把正确答案设为解答。
    • 已标记为答案 Tim Li 2009年8月26日 9:55
    2009年8月24日 2:08
    版主

全部回复

  • 你可以调试一下嘛.

    switch(var.vt)  在这句设置断点,然后快速监视var.vt就知道它的类型了.


    0xBAADF00D
    2009年8月22日 6:12
    版主
  • FieldPtr pFd =  rs->Fields->GetItem(0L);

    pFd->Type  // 见ADO帮助  adInterge,ad........

    上面那种取法,貌似不妥,如果譔表记录为空,那不是会返回VT_NULL 或者 VT_EMPTY之类
    minjiaqi
    2009年8月23日 8:10
  • a variant type of 14 is a VT_DECIMAL (a 16 byte fixed point number).
    麻烦把正确答案设为解答。
    • 已标记为答案 Tim Li 2009年8月26日 9:55
    2009年8月24日 2:08
    版主