COleVariant是数据库常用到的数据类型。它可以是字串,整型值,日期等。
设有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 = "";