_variant_t 与CString类型的相互转换,从数据库中取出的数据如何判断为空的情况。
CTime与CString的相互转换。请高手帮忙

解决方案 »

  1.   

    注意代码: const VARIANT* variant = LPCVARIANT(varValue);
    switch(variant->vt)
    {
    case VT_I2:{ cs.Format("%d", variant->iVal);
    break;
       }
    case VT_I4:{ cs.Format("%d", variant->lVal);
    break;
       }
    case VT_R4:{ cs.Format("%f", variant->fltVal);
    break;
       }
    case VT_R8:{ cs.Format("%f", variant->dblVal);
    break;
       }
    case VT_CY:{ COleCurrency c(varValue);
    cs = c.Format();//ie. 1.00
    break;
       }
    case VT_DATE:{ COleDateTime t(variant->date);
    cs = t.Format( "%A, %B %d, %Y");//Day of Week, Month Day, Year
    break;
     }
    case VT_BSTR:{  cs = V_BSTRT(&varValue);//convert BSTR to CString
    break;
    }
    case VT_BOOL:{ if(variant->boolVal) cs = "true"; else cs = "false";
    break;
     }
    case VT_UI1:{ cs = (char*)variant->bVal;
    break;
    } default: break; }
      

  2.   

    CTime 有个成员函数format && formatGmt can do this