原文来自: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);
_variant_t和_bstr_t是用于封装COM中VARIANT和BSTR数据类型的类。在VC中使用ADO连接数据库时,这些类帮助实现从C++类型到COM类型的数据转换,例如使用_bstr_t作为SQL语句的输入参数,获取的记录集字段则为_variant_t类型。
1604

被折叠的 条评论
为什么被折叠?



