求救!_variant_t 转化

anufa 2004-05-05 11:19:09
sql下我的字段为datatime类型
用GetCollect()得到的 _variant_t 类型
我如何才能将它转换成 CString 或 CTime 类型。
大家帮帮我吧,
...全文
81 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
laker_tmj 2004-05-07
  • 打赏
  • 举报
回复
up learn
狂放之歌 2004-05-06
  • 打赏
  • 举报
回复
mark..
aspnetwuxueyou 2004-05-05
  • 打赏
  • 举报
回复
use ChangeType member
aspnetwuxueyou 2004-05-05
  • 打赏
  • 举报
回复
_variant_t vtVal;
vtVal.vt = VT_R8;
vtVal.dblVal = 123456789012.1234;
vtVal.ChangeType(VT_DECIMAL);
swbreath 2004-05-05
  • 打赏
  • 举报
回复
好办
COleDateTime time1=(COleDateTime)(_variant_t)var;
然后使用COleDateTime的Format函数转化成字符串
uynix 2004-05-05
  • 打赏
  • 举报
回复
以前见到的别人写的一个函数,希望能对你有用~~~~
CString VariantToCString(VARIANT var)
{
CString strValue;
_variant_t var_t;
_bstr_t bst_t;
time_t cur_time;
CTime time_value;
COleCurrency var_currency;
switch(var.vt)
{
case VT_EMPTY:strValue=_T("");break;
case VT_UI1:strValue.Format ("%d",var.bVal);break;
case VT_I2:strValue.Format ("%d",var.iVal );break;
case VT_I4:strValue.Format ("%d",var.lVal);break;
case VT_R4:strValue.Format ("%f",var.fltVal);break;
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;
bst_t=var_t;
strValue.Format ("%s",(const char*)bst_t);
break;
case VT_NULL:strValue=_T("");break;
case VT_DATE:
cur_time=(long)var.date;
time_value=cur_time;
strValue=time_value.Format("%A,%B%d,%Y");
break;
case VT_BOOL:strValue.Format ("%d",var.boolVal );break;
default:strValue=_T("");break;
}
return strValue;
}
szclm 2004-05-05
  • 打赏
  • 举报
回复
//获得字段值
_variant_t var=m_DBRecordSet.GetFieldValue(4);
//把所在类型转达成字符型
::VariantChangeType(&var,&var,0,VT_BSTR);
CString str=var.bstrVal;
Kudeet 2004-05-05
  • 打赏
  • 举报
回复
设置_variant_t 里的数据类型
anufa 2004-05-05
  • 打赏
  • 举报
回复
很谢谢大家,
vtVal.vt = VT_R8; ///是什么意思?

我在数据库中把身份证设为 numeric(18 ),
可我用 _variant_t 转化成数值型,要发生益处,又不知道该怎么做了

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧