CString vartostr(const _variant_t &var)
{
	CString value;
	
	switch (var.vt)
	{
	case VT_LPSTR:		//×Ö·û´®
	case VT_BSTR:		//×Ö·û´®
	case VT_LPWSTR:		//×Ö·û´®
		value = (LPCTSTR)(_bstr_t)var;
		break;
	case VT_I1:
	case VT_UI1:
		value.Format(_T("%d"), var.bVal);
		break;
	case VT_I2://¶ÌÕûÐÍ
		value.Format(_T("%d"), var.iVal);
		break;
	case VT_INT://ÕûÐÍ
		value.Format(_T("%d"), var.intVal);
		break;
	case VT_I4: //ÕûÐÍ
		value.Format(_T("%d"), var.lVal);
		break;
	case VT_I8: //³¤ÕûÐÍ
		value.Format(_T("%d"), var.lVal);
		break;
	case VT_UI2://ÎÞ·ûºÅ¶ÌÕûÐÍ
		value.Format(_T("%u"), var.uiVal);
		break;
	case VT_UINT://ÎÞ·ûºÅÕûÐÍ
		value.Format(_T("%u"), var.uintVal);
		break;
	case VT_UI4: //ÎÞ·ûºÅÕûÐÍ
		value.Format(_T("%u"), var.ulVal);
		break;
	case VT_UI8: //ÎÞ·ûºÅ³¤ÕûÐÍ
		value.Format(_T("%u"), var.ulVal);
		break;
	case VT_VOID:
		value.Format(_T("%8x"), var.byref);
		break;
	case VT_R4://¸¡µãÐÍ
		value.Format(_T("%.4f"), var.fltVal);
		break;
	case VT_R8://Ë«¾«¶ÈÐÍ
		value.Format(_T("%.8f"), var.dblVal);
		break;
	case VT_DECIMAL: //СÊý
		value.Format(_T("%.8f"), (double)var);
		break;
	case VT_CY:
		{
			COleCurrency cy = var.cyVal;
			value = cy.Format();
		}
		break;
	case VT_BOOL://²¼¶ûÐÍ
		value = var.boolVal ? _T("1") : _T("0");
		break;
	case VT_DATE: //ÈÕÆÚÐÍ
		{
			COleDateTime da = COleDateTime(var.date); 
			value = da.Format(_T("%Y-%m-%d %H:%M:%S"));
		}
		break;
	case VT_NULL:
	case VT_EMPTY:
		value = _T("");
		break;
	default:
		_com_error e(TYPE_CAST_ERROR);
		throw e;
	}
	return value.Trim();
}
Beispiel #2
0
/*----------------------ADO读取类型的转换----------------------*/
CString vartostr(const _variant_t &var)
{
	CString strValue;
	
	switch (var.vt)
	{
	case VT_BSTR://字符串
	case VT_LPSTR://字符串
	case VT_LPWSTR://字符串
		strValue = (LPCTSTR)(_bstr_t)var;
		break;
	case VT_I1:
	case VT_UI1:
		strValue.Format("%d", var.bVal);
		break;
	case VT_I2://短整型
		strValue.Format("%d", var.iVal);
		break;
	case VT_UI2://无符号短整型
		strValue.Format("%d", var.uiVal);
		break;
	case VT_INT://整型
		strValue.Format("%d", var.intVal);
		break;
	case VT_I4: //整型
		strValue.Format("%d", var.lVal);
		break;
	case VT_I8: //长整型
		strValue.Format("%d", var.lVal);
		break;
	case VT_UINT://无符号整型
		strValue.Format("%d", var.uintVal);
		break;
	case VT_UI4: //无符号整型
		strValue.Format("%d", var.ulVal);
		break;
	case VT_UI8: //无符号长整型
		strValue.Format("%d", var.ulVal);
		break;
	case VT_VOID:
		strValue.Format("%8x", var.byref);
		break;
	case VT_R4://浮点型
		strValue.Format("%.4f", var.fltVal);
		break;
	case VT_R8://双精度型
		strValue.Format("%.8f", var.dblVal);
		break;
	case VT_DECIMAL: //小数
		strValue.Format("%.8f", (double)var);
		break;
	case VT_CY:
		{
			COleCurrency cy = var.cyVal;
			strValue = cy.Format();
		}
		break;
	case VT_BLOB:
	case VT_BLOB_OBJECT:
	case 0x2011:
		strValue = "[BLOB]";
		break;
	case VT_BOOL://布尔型

		strValue = var.boolVal ? "TRUE" : "FALSE";
		break;
	case VT_DATE: //日期型
		{
			DATE dt = var.date;
			COleDateTime da = COleDateTime(dt); 
			strValue = da.Format("%Y-%m-%d %H:%M:%S");
		}
		break;
	case VT_NULL://NULL值
		strValue = "";
		break;
	case VT_EMPTY://空
		strValue = "";
		break;
	case VT_UNKNOWN://未知类型
	default:
		strValue = "UN_KNOW";
		break;
	}
	return strValue;
}
Beispiel #3
0
CString vartostr(const _variant_t &var)
{
	CString value;
	
	switch (var.vt)
	{
	case VT_LPSTR:		//字符串
	case VT_BSTR:		//字符串
	case VT_LPWSTR:		//字符串
		value = (LPCTSTR)(_bstr_t)var;
		break;
	case VT_I1:
	case VT_UI1:
		value.Format(_T("%d"), var.bVal);
		break;
	case VT_I2://短整型
		value.Format(_T("%d"), var.iVal);
		break;
	case VT_INT://整型
		value.Format(_T("%d"), var.intVal);
		break;
	case VT_I4: //整型
		value.Format(_T("%d"), var.lVal);
		break;
	case VT_I8: //长整型
		value.Format(_T("%d"), var.lVal);
		break;
	case VT_UI2://无符号短整型
		value.Format(_T("%u"), var.uiVal);
		break;
	case VT_UINT://无符号整型
		value.Format(_T("%u"), var.uintVal);
		break;
	case VT_UI4: //无符号整型
		value.Format(_T("%u"), var.ulVal);
		break;
	case VT_UI8: //无符号长整型
		value.Format(_T("%u"), var.ulVal);
		break;
	case VT_VOID:
		value.Format(_T("%8x"), var.byref);
		break;
	case VT_R4://浮点型
		value.Format(_T("%.4f"), var.fltVal);
		break;
	case VT_R8://双精度型
		value.Format(_T("%.8f"), var.dblVal);
		break;
	case VT_DECIMAL: //小数
		value.Format(_T("%.8f"), (double)var);
		break;
	case VT_CY:
		{
			COleCurrency cy = var.cyVal;
			value = cy.Format();
		}
		break;
	case VT_BOOL://布尔型
		value = var.boolVal ? _T("1") : _T("0");
		break;
	case VT_DATE: //日期型
		{
			COleDateTime da = COleDateTime(var.date); 
			value = da.Format(_T("%Y-%m-%d %H:%M:%S"));
		}
		break;
	case VT_NULL:
	case VT_EMPTY:
		value = _T("");
		break;
	default:
		_com_error e(TYPE_CAST_ERROR);
		throw e;
	}
	return value.Trim();
}