CString VariantToString(VARIANT var);转换
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);转换的更多相关文章
- 关于CString与VARIANT(CComVariant)之间的转化
一.VARIANT.CComVariant类与CString是什么: CString是MFC定义的字符串类,VARIANT是COM标准为了使COM组件能够被各种语言使用(vc++.vb.java.py ...
- Char* ,CString ,WCHAR*之间的转换
关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...
- Cstring, TCHAR*, char*的转换
最近老用到Cstring, TCHAR*, char*的转换. 找到一篇写得蛮详细的. 引用过来, 方便自己以后查阅. char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底 ...
- 关于Char* ,CString ,WCHAR*之间的转换问题
GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *.得益 ...
- JPEG和Variant的转换
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ...
- char*、string、CString各种字符串之间转换
参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/d ...
- 文件和Variant的转换
function FileToVariant(FileName: String): OleVariant; var AStream: TFileStream; MyBuffer: Pointe ...
- 流和Variant的转换
procedure TForm2.VariantToStream (const v : olevariant; Stream : T ...
- bmp和Variant的转换
procedure TForm2.VariantToBMP(aValue : OleVariant;var aBmp:TBitmap); var Stream : TMemoryStream; ...
随机推荐
- 【csp模拟赛2】黑莲花--数据结构+数论
没有什么能够阻挡,你对被阿的向往.天天 AK 的生涯,你的心了无牵挂. 虐过大佬的比赛,也曾装弱装逼.当你低头的瞬间,才发现旁边的人. 把你的四肢抬起来,使劲地往门上撞.盛开着永不凋零,黑莲花. —— ...
- 使用已有的jmeter测试结果日志文件生成html报告
当并发数较大的时候,经常会出现测试结束后没有生成html报告的情况 解决办法: 测试结束后,使用生成的jmeter测试结果日志文件.jtl生成html报告 基本命令格式: jmeter -g < ...
- PHP 根据两个坐标计算距离 圆形围栏的计算
可以应用于圆形电子围栏入 出围栏计算 圆形电子围栏的计算方式是: 根据圆心坐标和当前检查的坐标进行距离计算,如果距离长度超出围栏的半径,则判定为出围栏,反之是在围栏之内 <?php /** * ...
- js scroll动画
知识点 1.window.scrollTo (x,y):可以把内容滚动到指定位置 scroll scroll:卷动意思(书卷) 从上到下移动 1.window.onscroll 窗口滚动事件 ...
- nginx实现动静分离的负载均衡集群
实战: 一.源码编译安装nginx [root@tiandong63 ~]#yum groupinstall "Development Tools" "Developme ...
- 16.合并两个排序的链表 Java
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解题思路 两种解法:递归和非递归 参考代码 /* public class ListNode { ...
- golang中遍历汇总
直接上例子: 例子1: package main import( "fmt" ) func main(){ a := map[string]string{ "alice& ...
- Linux孤儿进程与僵尸进程
1. 基本概念: 孤儿进程:父进程退出,但是其子进程仍然在运行,那么这些子进程被称为孤儿进程:孤儿进程会被init进程收养,并作善后处理: 僵尸进程:一个已经终止,但是其父进程尚未对齐进行善后处理的进 ...
- 第11组 Alpha冲刺(3/6)
第11组 Alpha冲刺(3/6) 队名 不知道叫什么团队 组长博客 https://www.cnblogs.com/xxylac/p/11872098.html 作业博客 https://edu ...
- FreeMarker学习(常用表达式)
直接指定值 字符串: "Foo" 或者 'Foo' 或者 "It's \"quoted\"" 或者 'It\'s "quoted& ...