📄 daovariant.cpp
字号:
// DaoVariant.cpp: implementation of the CDaoVariant class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DaoVariant.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//##ModelId=40A481F80280
CDaoVariant::CDaoVariant()
{
}
//##ModelId=40A481F802F1
CDaoVariant::~CDaoVariant()
{
}
//##ModelId=40A481F80273
CString CDaoVariant::AsString()
{
CString strValue;
switch (vt)
{
case VT_BSTR://字符串
strValue = V_BSTRT( this );
break;
case VT_CY:
return COleCurrency(*this).Format();
case VT_VOID://
case VT_INT://整型
case VT_I4://整型
strValue.Format("%d", intVal);
break;
case VT_I2://短整型
strValue.Format("%d", iVal);
break;
case VT_UI2://无符号短整型
strValue.Format("%d", uiVal);
break;
case VT_I8://长整型
strValue.Format("%d", lVal);
break;
case VT_UINT://无符号整型
case VT_UI4://无符号整型
strValue.Format("%d", uintVal);
break;
case VT_UI8://无符号长整型
strValue.Format("%ld", ulVal);
break;
case VT_R4://浮点型
strValue.Format("%.4f", fltVal);
break;
case VT_R8://双精度型
strValue.Format("%.8f", dblVal);
break;
case VT_DECIMAL: //小数
strValue.Format("%.4f", decVal);
break;
case VT_BOOL://布尔型
return _T(lVal ? "TRUE" : "FALSE");
case VT_DATE: //日期型
return COleDateTime(date).Format("%Y-%m-%d %H:%M:%S");
case VT_NULL://NULL值
#ifdef _DEBUG
return _T("NULL");
#else
return _T("");
#endif
case VT_EMPTY://空
return _T("");
case VT_UNKNOWN://未知类型
default:
strValue = "UN_KNOW";
break;
}
return strValue;
}
//##ModelId=40A481F80272
int CDaoVariant::AsInt()
{
CString s;
switch(vt)
{
case VT_INT://整型
case VT_I4://整型
return intVal;
case VT_I2://短整型
return iVal;
case VT_UI2://无符号短整型
return uiVal;
case VT_I8://长整型
return lVal;
case VT_UINT://无符号整型
case VT_UI4://无符号整型
return uintVal;
case VT_UI8://无符号长整型
return ulVal;
case VT_R4://浮点型
return int(fltVal);
break;
case VT_R8://双精度型
return int(dblVal);
break;
case VT_BSTR://字符串
s = V_BSTRT(this);
return atoi(s);
break;
default:
return 0;
}
}
//##ModelId=40A481F80271
long CDaoVariant::AsLong()
{
CString s;
switch(vt)
{
case VT_INT://整型
case VT_I4://整型
return intVal;
case VT_I2://短整型
return iVal;
case VT_UI2://无符号短整型
return uiVal;
case VT_I8://长整型
return lVal;
case VT_UINT://无符号整型
case VT_UI4://无符号整型
return uintVal;
case VT_UI8://无符号长整型
return ulVal;
case VT_R4://浮点型
return long(fltVal);
break;
case VT_R8://双精度型
return long(dblVal);
break;
case VT_BSTR://字符串
s = V_BSTRT(this);
return atol(s);
break;
default:
return 0l;
}
}
//##ModelId=40A481F80264
float CDaoVariant::AsFloat()
{
CString s;
switch(vt)
{
case VT_INT://整型
case VT_I4://整型
return (float)intVal;
case VT_I2://短整型
return (float)iVal;
case VT_UI2://无符号短整型
return (float)uiVal;
case VT_I8://长整型
return (float)lVal;
case VT_UINT://无符号整型
case VT_UI4://无符号整型
return (float)uintVal;
case VT_UI8://无符号长整型
return (float)ulVal;
case VT_R4://浮点型
return (float)fltVal;
break;
case VT_R8://双精度型
return float(dblVal);
break;
case VT_BSTR://字符串
s = V_BSTRT(this);
return (float)atof(s);
break;
default:
return 0l;
}
}
//##ModelId=40A481F80263
double CDaoVariant::AsDouble()
{
CString s;
switch(vt)
{
case VT_INT://整型
case VT_I4://整型
return intVal;
case VT_I2://短整型
return iVal;
case VT_UI2://无符号短整型
return uiVal;
case VT_I8://长整型
return lVal;
case VT_UINT://无符号整型
case VT_UI4://无符号整型
return uintVal;
case VT_UI8://无符号长整型
return ulVal;
case VT_R4://浮点型
return fltVal;
break;
case VT_R8://双精度型
return dblVal;
break;
case VT_BSTR://字符串
s = V_BSTRT(this);
return atof(s);
break;
default:
return 0l;
}
}
//##ModelId=40A481F80262
COleDateTime CDaoVariant::AsDateTime()
{
if(vt == VT_DATE) //日期型
return COleDateTime(date);
else
return COleDateTime();
}
//##ModelId=40A481F80261
COleCurrency CDaoVariant::AsCurrency()
{
if(vt == VT_CY) //日期型
return COleCurrency(*this);
else
return COleCurrency();
}
/*
CByteArray CDaoVariant::AsByteArray()
{
if(vt == VT_CY) //日期型
return CByteArray(*((Variant*)(this)));
else
return CByteArray();
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -