Variant类型转换成CString代码

在对数据库操作中通常都会用到Variant 和_bstr_t类型,在网上也有很多关于这方面的代码。而在进行MFC等程序中,通常都会用到CString类。从Variant转换成CString代码如下:view plaincopy to clipboardprint?
CString VariantToString(_variant_t var)  
{  
    CString strValue;  
    _variant_t var_t;  
    _bstr_t bstr_t;  
 
    COleCurrency var_currency;  
 
    switch(var.vt)  
 
    {  
 
    case VT_EMPTY:  
 
    case VT_NULL:strValue=_T("");break;  
 
    case VT_UI1:strValue.Format("%d",var.bVal);break;   //bool  
 
    case VT_I2:strValue.Format("%d",var.iVal);break;    //int  
 
    case VT_I4:strValue.Format("%d",var.lVal);break;    //long  
 
    case VT_R4:strValue.Format("%f",var.fltVal);break;  //float  
 
    case VT_R8:strValue.Format("%f",var.dblVal);break;  //  
 
    case VT_CY:  
        var_currency=var;  
        strValue=var_currency.Format(0);break;  
 
    case VT_BSTR:  
        var_t =var;  
        bstr_t=var_t;  
        strValue.Format("%s",(const char *)bstr_t);  
        break;  
 
    case 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");  
        }  
        break;  
 
    case VT_BOOL:strValue.Format("%d",var.boolVal);  
        break;  
 
    default:strValue=_T("");break;  
 
    }  
 
    return strValue;  

CString VariantToString(_variant_t var)
{
 CString strValue;
 _variant_t var_t;
 _bstr_t bstr_t;

 COleCurrency var_currency;

 switch(var.vt)

 {

 case VT_EMPTY:

 case VT_NULL:strValue=_T("");break;

 case VT_UI1:strValue.Format("%d",var.bVal);break; //bool

 case VT_I2:strValue.Format("%d",var.iVal);break; //int

 case VT_I4:strValue.Format("%d",var.lVal);break; //long

 case VT_R4:strValue.Format("%f",var.fltVal);break; //float

 case VT_R8:strValue.Format("%f",var.dblVal);break; //

 case VT_CY:
  var_currency=var;
  strValue=var_currency.Format(0);break;

 case VT_BSTR:
  var_t =var;
  bstr_t=var_t;
  strValue.Format("%s",(const char *)bstr_t);
  break;

 case 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");
  }
  break;

 case VT_BOOL:strValue.Format("%d",var.boolVal);
  break;

 default:strValue=_T("");break;

 }

 return strValue;
}

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/whf727/archive/2009/05/19/4202120.aspx

posted on 2010-08-17 22:12  wqj1212  阅读(6784)  评论(0编辑  收藏  举报

导航