从tab中读出记录,data字段是字符串类型,但是不知道如何从ret中把它取出来,
按照pc指针的方式,打印出来的字符串是不对;
而按照CString str转换后,打印出来的不是原来数据库中存的字符串,是数值。这个问题该怎么解决呢?谢谢!代码如下:
_bstr_t strSql("select * from tab where id2='" + id + "'");
HRESULT hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(strSql, _variant_t((IDispatch*)m_pConnection,true), adOpenDynamic, adLockOptimistic, adCmdText); while(!m_pRecordset->adoEOF)
{
variant_t ret = m_pRecordset->GetCollect("data");
char * pc = ret.pcVal;
Cstring str=ret.bstrVal;
for(int i=0; i<sizeof(ret)/sizeof(char);i++)//这种方法打出来的字符不连续,与原串不一致,还有乱码
cout<<pc[i];
CString str =(char *)(_bstr_t)ret; //这种方法打印出来的不是字符串,而是数值
cout<<str<<endl;
按照pc指针的方式,打印出来的字符串是不对;
而按照CString str转换后,打印出来的不是原来数据库中存的字符串,是数值。这个问题该怎么解决呢?谢谢!代码如下:
_bstr_t strSql("select * from tab where id2='" + id + "'");
HRESULT hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(strSql, _variant_t((IDispatch*)m_pConnection,true), adOpenDynamic, adLockOptimistic, adCmdText); while(!m_pRecordset->adoEOF)
{
variant_t ret = m_pRecordset->GetCollect("data");
char * pc = ret.pcVal;
Cstring str=ret.bstrVal;
for(int i=0; i<sizeof(ret)/sizeof(char);i++)//这种方法打出来的字符不连续,与原串不一致,还有乱码
cout<<pc[i];
CString str =(char *)(_bstr_t)ret; //这种方法打印出来的不是字符串,而是数值
cout<<str<<endl;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货