原文來自: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);