码迷,mamicode.com
首页 > 其他好文 > 详细

_variant_t和_bstr_t

时间:2017-08-22 20:14:00      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:rom   bsp   mdt   数据   connect   stat   rip   mat   user   

_variant_t和_bstr_t这两个类分别封装并管理VARIANT和BSTR这两种数据类型,

VARIANT和BSTR这两种类型是COM中使用的数据类型。

 

实现_variant_t向int,String ,double,long,byte等类型转换

 

为了C++中的变量应用到ADO编程中,只能进行数据类型的转换。
通过_variant_t和_bstr_t这两个类,就可

_variant_t var;
var=m_pRecordset->GetCollect ("UserName");
ss=(TCHAR*)(_bstr_t)vUsername;//转换成字符串

 

以方便的把C++类型变量转换成COM中的变量了。

技术分享

 

     UpdateData();
        CString strCmd = L"select * from n where 材料=‘";
        strCmd += m_Querymaterial;
        strCmd += "";
        m_pRecordset = m_pConnection->Execute(_bstr_t(strCmd), &RecordsAffected, adCmdText);

 

 

技术分享

 

_variant_t vM,vN;
    try
    {
        while(!m_pRecordset->adoEOF)
        {
            //取得第0列的值,从0开始计数
            vM=m_pRecordset->GetCollect(_variant_t((long)0));
            //取得“折射率”这一列的值
            vN=m_pRecordset->GetCollect("折射率");
            CString strtemp;
            if (vM.vt!=VT_NULL)  
            {  
                strtemp.Format(_T("%s"),vM.lVal);  
            }
            if (vN.vt!=VT_NULL)
            {
                strtemp+=" ";
                strtemp+=(LPCTSTR)(_bstr_t)vN;
            }
            m_list1.AddString(strtemp);  
            m_list1.AddString(_T("\n"));
            m_pRecordset->MoveNext();//移动到下一条记录
        }
    }
    catch(_com_error &e)  
    {  
        AfxMessageBox(e.Description());
        return;
    }  
    if (m_pRecordset->Close())
    {
        m_pRecordset->Close();
        m_pRecordset=NULL;
    } 
    if (m_pConnection->State)
    {
        m_pConnection->Close();
        m_pConnection=NULL;
    }
}

 

_variant_t和_bstr_t

标签:rom   bsp   mdt   数据   connect   stat   rip   mat   user   

原文地址:http://www.cnblogs.com/wxl845235800/p/7413414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!