std::vector出现乱码的问题
过程是:使用ADO从数据库中读取数据,然后保存到结构中,再把结构保存到std::vector中,问题是:当保存第二行数据的时候,第一行的数据就变成乱码了。请大侠给与指教。代码如下:
std::vector<tagKuCun> vecKuCun;
typedef struct _tagKuCun
{
LPCTSTR szGoodsCode;
LPCTSTR szGoodsName;
LPCTSTR szGoodsType;
LPCTSTR szGoodsUnit;
int nGoodsNumber;
}tagKuCun;
...
if(m_pADO->Execute(sqlSelectTable))
{
tagKuCun *strTmpKuCun=new tagKuCun();
while(0== m_pADO->GetRecordset()->adoEOF)
{
CString csTmpGC=(LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("GoodsCode");
CString csTmpGN = (LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("GoodsName");
CString csTmpGU = (LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("GoodsUnit");
CString csTmpUnits = (LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("Units");
int nTmpNumber=m_pADO->GetRecordset()->GetCollect("Number");
strTmpKuCun->szGoodsCode =csTmpGC;
strTmpKuCun->szGoodsName=csTmpGN;
strTmpKuCun->szGoodsType =csTmpGU;
strTmpKuCun->szGoodsUnit=csTmpUnits;
strTmpKuCun->nGoodsNumber=nTmpNumber;
vecKuCun.push_back(*strTmpKuCun); //这里循环第二次的时候,上次保存的数据就变成乱码了??(貌似是指针初始化了)
m_pADO->GetRecordset()->MoveNext();
}
}