Variant类型转换成CString代码

  对数据库的操作常常会用Variant和_bstr_t类型,在进行MFC等程序中,通常会用到CString类。从variant转换成CString代码如下:view plaincopy to clipboardprint?

  

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;
}

  转自http://blog.csdn.net/whf727/archive/2009/05/19/4202120.aspx

CString VariantToString(VARIANT var);转换的更多相关文章

  1. 关于CString与VARIANT(CComVariant)之间的转化

    一.VARIANT.CComVariant类与CString是什么: CString是MFC定义的字符串类,VARIANT是COM标准为了使COM组件能够被各种语言使用(vc++.vb.java.py ...

  2. Char* ,CString ,WCHAR*之间的转换

    关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...

  3. Cstring, TCHAR*, char*的转换

    最近老用到Cstring, TCHAR*, char*的转换. 找到一篇写得蛮详细的. 引用过来, 方便自己以后查阅. char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底 ...

  4. 关于Char* ,CString ,WCHAR*之间的转换问题

    GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *.得益 ...

  5. JPEG和Variant的转换

    unit Unit1; interface uses   Windows, Messages, SysUtils, Classes, Graphics, Controls,       Forms, ...

  6. char*、string、CString各种字符串之间转换

    参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/d ...

  7. 文件和Variant的转换

    function FileToVariant(FileName: String): OleVariant; var   AStream: TFileStream;   MyBuffer: Pointe ...

  8. 流和Variant的转换

    procedure TForm2.VariantToStream (const v : olevariant;                                   Stream : T ...

  9. bmp和Variant的转换

    procedure TForm2.VariantToBMP(aValue : OleVariant;var aBmp:TBitmap); var    Stream : TMemoryStream;  ...

随机推荐

  1. SpringMVC——数据乱码问题

    乱码解决: 1.controller传递数据给页面 :在RequestMapping当中指定produces="text/json;charset=utf-8" 2.Control ...

  2. 年视图,选择月份 ---bootstrap datepicker

    $.fn.datepicker.dates['cn'] = { //切换为中文显示 days: ["周日", "周一", "周二", &qu ...

  3. CISCO实验记录四:备份路由器的IOS

    1.配置好TFTP服务器(假设ip为192.168.2.1) 2.查看当前IOS名称 #show version 输出中有一段:System image file is "bootflash ...

  4. LeetCode 221. 最大正方形(Maximal Square)

    题目描述 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: ...

  5. 梯度提升树GBDT总结

    提升树的学习优化过程中,损失函数平方损失和指数损失时候,每一步优化相对简单,但对于一般损失函数优化的问题,Freidman提出了Gradient Boosting算法,其利用了损失函数的负梯度在当前模 ...

  6. 实体类(VO,DO,DTO)的划分

    实体类(VO,DO,DTO)的划分 (2011-12-21 15:50:27) 转载▼ 标签: it   经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度 ...

  7. 用第三方工具类,将JavaBean、List、Map<String,Object>转成JSON文本

    导入第三方jar包: >commons-beanutils-1.7.0.jar >commons-collections-3.1.jar >commons-lang-2.5.jar ...

  8. Rose的四种视图模型

    用例视图 用例视图中包括了系统中的所有参与者.用例和用例图,必要时还可以在用例视图中添加顺序图.活动图等 逻辑视图 逻辑系统关注系统是如何实现用例中所描述的功能的,主要是对系统功能性需求提供支持,即为 ...

  9. 原生vue实现表格的编辑,包括单元格合并,拆分,删除行/列, 添加行/列

    先看效果图如下:  代码看这里: https://github.com/YalongYan/vue-table-edit

  10. vue 组件属性props,特性驼峰命名,连接线使用

    网址:https://www.cnblogs.com/alasq/p/6363160.html 总结如下:vue的组件的props属性支持驼峰命名,不支持连接线命名,使用是用连接线进行赋值或者数据绑定 ...