COleVariant是数据库常用到的数据类型。它可以是字串,整型值,日期等。知道怎样将它转换为CString很有用处。
设有CString A; COleVariant B; 来看看怎样将COleVariant转换为CString:
switch(B.vt){
case VT_BSTR: A=B.bstrVal; break;//COleVariant是一个字串
case VT_I2: A.Format(_T("%hd"),V_I2(&B));break;//是短整型
case VT_I4: A.Format(_T("%d"),V_I4(&B));break;//是长整型
case VT_R4: A.Format(_T("%e"),(double)V_R4(&B));break;//是浮点数
case VT_R8: A.Format(_T("%e"),V_R8(&B));break;//是浮点数
case VT_CY: A=COleCurrency(B).Format();break;//是货币值
case VT_DATE: A=COleDateTime(B).Format("%Y-%m-%d");break;//是日期
case VT_BOOL: A=V_BOOL(&B)?"True":"False";break;//是布尔值
}
VARIANT转CString类型
vResult = range.GetValue();
CString str;
if(vResult.vt == VT_BSTR) //字符串
str = vResult.bstrVal;
else if (vResult.vt == VT_R8) //8字节的数字
str.Format("%f", vResult.dblVal);
else if(vResult.vt == VT_DATE) //时间格式
{ SYSTEMTIME st;
VariantTimeToSystemTime(vResult.date, &st);
}
else if(vResult.vt == VT_EMPTY) //单元格空的
str = "";
转载自http://www.scistar.com/dis2/view.asp?enum=549