原文来自:http://blog.sina.com.cn/s/blog_5f7dc62e0100dowp.html
担心以后找不到 故而转载
_bstr_t和_variant_t
_variant_t和_bstr_t这两个类分别封装并管理VARIANT和BSTR这两种数据类型,VARIANT和BSTR这两种类型是COM中使用的数据类型。为了C++中的变量应用到ADO编程中,只能进行数据类型的转换。_variant_t和_bstr_t这两个类,就可以方便的把C++类型变量转换成COM中的变量了.
vc中利用ADO连接数据库时,进入数据库,利用open方法时,第一个参数数据类型为_bstr_t
m_pRecordset->Open(_bstr_t(sql), m_pConnection.GetInterfacePtr(),
adOpenDynamic, adLockOptimistic, adCmdText); //执行SQL得到记录集
得到记录集数据时数据类型为varient_t
varient_t m_dirno = m_pRecordset->GetFields()->GetItem((long)0)->Value;//类型号
所以类型转换为
CString sql;
_bstr_t(sql),
varient_t m_dirno
得到的结果变CSting型:
CString dirname=(TCHAR*)(_bstr_t)m_dirname ;
得到的结果变int型
int dirno=atoi((TCHAR*)(_bstr_t)m_dirno);