日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

_variant_t和_bstr_t

發(fā)布時間:2024/8/26 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 _variant_t和_bstr_t 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

_variant_t和_bstr_t這兩個類分別封裝并管理VARIANT和BSTR這兩種數(shù)據(jù)類型,

VARIANT和BSTR這兩種類型是COM中使用的數(shù)據(jù)類型。

?

實現(xiàn)_variant_t向int,String ,double,long,byte等類型轉(zhuǎn)換

?

為了C++中的變量應(yīng)用到ADO編程中,只能進行數(shù)據(jù)類型的轉(zhuǎn)換。
通過_variant_t和_bstr_t這兩個類,就可

_variant_t var; var=m_pRecordset->GetCollect ("UserName"); ss=(TCHAR*)(_bstr_t)vUsername;//轉(zhuǎn)換成字符串

?

以方便的把C++類型變量轉(zhuǎn)換成COM中的變量了。

?

CString轉(zhuǎn)換為_variant_t:

CString str = _T("xxx"); _variant_t var = (LPCTSTR)str;

把CString 轉(zhuǎn)換為_variant_t:

整型:(long) (_variant_t) m_pRecordset->GetFieldByName("XX"); 字符串型:(m_pRecordset->GetFieldByName("XX")).bstrVal;

把一個日期字符串轉(zhuǎn)成_variant_t:

1.CString可以直接轉(zhuǎn)_variant_t。 CString szTime("2008-8-8 08:08:08"); _variant_t mt = szTime; 2._variant_t轉(zhuǎn)CString用如下函數(shù): CString VariantToCString(_variant_t var) {CString str; //轉(zhuǎn)換以后的字符串switch(var.vt){ case VT_BSTR: //var is BSTR type str=var.bstrVal;break; case VT_I2: //var is short int type str.Format("%d",(int)var.iVal);break; case VT_I4: //var is long int type str.Format("%d",var.lVal);break; case VT_R4: //var is float type str.Format(".6f",(double)var.fltVal);break; case VT_R8: //var is double type str.Format(".6f",var.dblVal);break; case VT_CY: //var is CY type str=COleCurrency(var).Format();break; case VT_DATE: //var is DATE type str=COleDateTime(var).Format();break; case VT_BOOL: //var is VARIANT_BOOL str= (var.boolVal==0) ?L"FALSE": L"TRUE";break; default:str.Format("Unk type %d\n",var.vt);TRACE("Unknown type %d\n",var.vt);}return str;}

把一個int轉(zhuǎn)換為_variant_t類型:

int a = 5;_variant_t var;var = (_variant_t)(long)a;

?

?


?

?

     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開始計數(shù)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;} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/wxl845235800/p/7413414.html

總結(jié)

以上是生活随笔為你收集整理的_variant_t和_bstr_t的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。