変異型は、コードのCStringに変換します
データベースの動作は、多くの場合、_bstr_tバリアント型と、プログラム中に、そのようなMFCは、CStringのクラスは、一般的に使用されます。clipboardprintするビューplaincopy:次のコードにバリアントから変換CStringの?
clipboardprintするplaincopy?
CStringのVariantToString(_variant_tのVAR)
{
CStringのstrValueに。
_variant_t var_t;
_bstr_t bstr_t;
COleCurrencyのvar_currency。
スイッチ(var.vt)
{
ケースVT_EMPTY:
ケースVT_NULL:strValueに= _T( "");破ります。
ケースVT_UI1:strValue.Format( "%d個"、var.bVal);破ります; // BOOL
場合VT_I2:strValue.Format( "%d個"、var.iVal);破ります; // int型の
場合VT_I4:strValue.Format( "%d個"、var.lVal);破ります; //長い
場合VT_R4:strValue.Format( "%fを"、var.fltVal);破ります; //フロート
ケースVT_R8:strValue.Format( "%fを"、var.dblVal);破ります; //
ケースVT_CY:
var_currency = VAR。
strValueに= var_currency.Format(0);破ります;
ケースVT_BSTR:
var_t = VAR。
bstr_t = var_t。
strValue.Format( "%sの"、(CONSTのchar *)bstr_t)。
ブレーク;
場合VT_DATE://时间类型
{
はCTime myTime(((のCOleDateTime)VAR).GetYear()、((
のCOleDateTime)VAR).GetMonth()、
((のCOleDateTime)VAR).GetDay()、
((のCOleDateTime)VAR) .GetHour()、
((のCOleDateTime)VAR).GetMinute()、
((のCOleDateTime)VAR).GetSecond())。
strValueに= myTime.Format( "%Y-%M-%D%H:%のM:%のS")。
}
ブレーク;
ケースVT_BOOL:strValue.Format( "%dの"、var.boolVal)。
ブレーク;
デフォルト:strValueに= _T( "");破ります;
}
strValueにを返します。
}
のCString VariantToString(_variant_tのVAR)
{
CStringのstrValueに。
_variant_t var_t;
_bstr_t bstr_t;
COleCurrencyのvar_currency。
スイッチ(var.vt)
{
ケースVT_EMPTY:
ケースVT_NULL:strValueに= _T( "");破ります;
ケースVT_UI1:strValue.Format( "%d個"、var.bVal);破ります; // BOOL
ケースVT_I2:strValue.Format( "%d個"、var.iVal);破ります; // int型
ケースVT_I4:strValue.Format( "%d個"、var.lVal);破ります; //長いです
ケースVT_R4:strValue.Format( "%fを"、var.fltVal);破ります; //浮く
ケースVT_R8:strValue.Format( "%fを"、var.dblVal);破ります; //
ケースVT_CY:
var_currency = VAR。
strValueに= var_currency.Format(0);破ります;
ケースVT_BSTR:
var_t = VAR。
bstr_t = var_t。
strValue.Format( "%sの"、(CONSTのchar *)bstr_t)。
ブレーク;
場合VT_DATE://时间类型
{
はCTime myTime(((のCOleDateTime)VAR).GetYear()、
((のCOleDateTime)VAR).GetMonth()、
((のCOleDateTime)VAR).GetDay()、
((のCOleDateTime)VAR) .GetHour()、
((のCOleDateTime)VAR).GetMinute()、
((のCOleDateTime)VAR).GetSecond())。
strValueに= myTime.Format( "%Y-%M-%D%H:%のM:%のS")。
}
ブレーク;
ケースVT_BOOL:strValue.Format( "%dの"、var.boolVal)。
ブレーク;
デフォルト:strValueに= _T( "");破ります;
}
strValueにを返します。
}
転送http://blog.csdn.net/whf727/archive/2009/05/19/4202120.aspx