_bstr_t 在ADO编程上有_bstr_t这样的类型如::Open(_bsrt_t ConnectionString _bstr_t...它是一种什么样的数据类型?应如何将它转化为其它类型,如int,char? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 REGEDIT4[HKEY_CLASSES_ROOT\*\shell][HKEY_CLASSES_ROOT\*\shell\Notepad]@="用记事本打开"[HKEY_CLASSES_ROOT\*\shell\Notepad\command]@="C:\\windows\\notepad.exe %1" ado中的数据类型被读取到_variant_t结构中。举例如下:_variant_t vParam;vParam=m_pRecordset->GetCollect("字段A");若字段A为整型: int i; i=vParam.iVal;若字段A为字符型: CString str; str=vParam.bstrVal;若字段A为时间类型: COleDateTime sqlTime(vParam);//CTime-->_variant_tCTime time(CTime::GetCurrentTime());SYSTEMTIME timeDest;time.GetAsSystemTime(timeDest);double vtime;SystemTimeToVariantTime(&timeDest,&vtime);_variant_t var_time(vtime,VT_DATE);// COleCurrency ---> double COleCurrency m_cur(4,500); double dval = ((double)m_cur.m_cur.int64)/10000; CString s; s.Format("%.4f",dval); AfxMessageBox(s); SAFEARRAY* psa; SAFEARRAYBOUND bounds = {8, 0}; psa = SafeArrayCreate(VT_BSTR, 1, &bounds); BSTR* bstrArray; SafeArrayAccessData(psa, reinterpret_cast<void**>(&bstrArray)); int i = 0; for(it = 0; it != 8; it++, i++) { bstrArray[i] = SysAllocString(T2OLE("VALUES")); } SafeArrayUnaccessData(psa);该程序段说明了如何从字段检索数值并将数值转换为 C++ 变量。#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")#include <stdio.h>Class CEmployee{public: FetchEmployeeData(); char m_szFirstName[30]; char m_szLastName[30]; int nAge;};CEmployee::FetchEmployeeData(){_ConnectionPtr pCon();_RecordsetPtr pRs();FieldPtr pfldFirstName, pfldLastName, pfldAge;_variant_t vFirstName, vLastName, vAge;pCon.CreateInstance(__uuidof(Connection));pCon->Open(“pubs”, “sa”, “”);pRs.CreateInstance(__uuidof(Recordset));pRs->Open(“select FirstName, LastName, Age from Employees”, pCon, adOpenForwardOnly, adLockReadOnly, adCmdUnknown);pfldFirstName = pRs->Fields->GetItem(0);pfldLastName = pRs->Fields->GetItem(1);pfldAge = pRs->Fields->GetItem(2);while (VARIANT_FALSE == pRs->EndOfFile) { vFirstName.Clear(); vLastName.Clear(); vAge.Clear(); vFirstName = pfldFirstName->Value; WideCharToMultiByte(CP_ACP, 0, vFirstName.bstrVal, -1, m_szFirstName, sizeof(m_szFirstName), NULL, NULL); vLastName = pfldLastName->Value; WideCharToMultiByte(CP_ACP, 0, vLastName.bstrVal, -1, m_szLastName, sizeof(m_szLastName), NULL, NULL); nAge = vAge.iVal; pRs->MoveNext(); }} 把_bstr_t 转入_variant_t中,使用它再转变你想要的数据类型就可以了 求网上类似于TCP/IP调试助手的源码 自学VC++该如何上机练习?? 如何在内存中实现bmp与jpg的相互转换(不使用文件) 各位大虾!帮我解决一下,先谢了! xml path 请各位大侠指点一下适合我的发展方向,很迷茫 如何改变窗口的 缺省风格? 求BMP转静态GIF的源代码 请教:如何在自定义的类中,在单文档视图界面动态创建CButton?急!急!急!立即结帐!谢谢! 用vc编译vxd文件如何输出pdb文件 您们好,我想得到托盘的句柄,请问怎么能得到,同时使托盘具有托动功能,谢谢 在程序中各个类之间如何相互通讯?
@="用记事本打开"[HKEY_CLASSES_ROOT\*\shell\Notepad\command]
@="C:\\windows\\notepad.exe %1"
举例如下:
_variant_t vParam;vParam=m_pRecordset->GetCollect("字段A");若字段A为整型:
int i;
i=vParam.iVal;若字段A为字符型:
CString str;
str=vParam.bstrVal;若字段A为时间类型:
COleDateTime sqlTime(vParam);//CTime-->_variant_t
CTime time(CTime::GetCurrentTime());
SYSTEMTIME timeDest;
time.GetAsSystemTime(timeDest);
double vtime;
SystemTimeToVariantTime(&timeDest,&vtime);
_variant_t var_time(vtime,VT_DATE);// COleCurrency ---> double
COleCurrency m_cur(4,500);
double dval = ((double)m_cur.m_cur.int64)/10000;
CString s;
s.Format("%.4f",dval);
AfxMessageBox(s);
SAFEARRAY* psa;
SAFEARRAYBOUND bounds = {8, 0};
psa = SafeArrayCreate(VT_BSTR, 1, &bounds);
BSTR* bstrArray;
SafeArrayAccessData(psa, reinterpret_cast<void**>(&bstrArray));
int i = 0;
for(it = 0; it != 8; it++, i++)
{
bstrArray[i] = SysAllocString(T2OLE("VALUES"));
}
SafeArrayUnaccessData(psa);
该程序段说明了如何从字段检索数值并将数值转换为 C++ 变量。#import "c:\Program Files\Common Files\System\ADO\msado15.dll"
no_namespace rename("EOF", "EndOfFile")
#include <stdio.h>Class CEmployee
{
public:
FetchEmployeeData(); char m_szFirstName[30];
char m_szLastName[30];
int nAge;
};CEmployee::FetchEmployeeData()
{
_ConnectionPtr pCon();
_RecordsetPtr pRs();
FieldPtr pfldFirstName, pfldLastName, pfldAge;
_variant_t vFirstName, vLastName, vAge;pCon.CreateInstance(__uuidof(Connection));
pCon->Open(“pubs”, “sa”, “”);pRs.CreateInstance(__uuidof(Recordset));
pRs->Open(“select FirstName, LastName, Age from Employees”, pCon,
adOpenForwardOnly, adLockReadOnly, adCmdUnknown);pfldFirstName = pRs->Fields->GetItem(0);
pfldLastName = pRs->Fields->GetItem(1);
pfldAge = pRs->Fields->GetItem(2);while (VARIANT_FALSE == pRs->EndOfFile)
{
vFirstName.Clear();
vLastName.Clear();
vAge.Clear(); vFirstName = pfldFirstName->Value;
WideCharToMultiByte(CP_ACP, 0, vFirstName.bstrVal, -1,
m_szFirstName, sizeof(m_szFirstName), NULL, NULL); vLastName = pfldLastName->Value;
WideCharToMultiByte(CP_ACP, 0, vLastName.bstrVal, -1,
m_szLastName, sizeof(m_szLastName), NULL, NULL); nAge = vAge.iVal; pRs->MoveNext();
}
}