ado 关于数据库 _RecordsetPtr的有关问题
ado 关于数据库 _RecordsetPtr的问题
我谢了一个程序代码如下:
sql_string1.Format( "select NAME,NAME_CHN,NAME_PY from POINAME where NAME = %s ",name);
if(FAILED(m_pPoiNameRecordset-> Open(_variant_t(sql_string1),_variant_t((IDispatch *)m_pConnection,true),
adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox( "Create RecordSet Instance failed! ");
return NULL ;
}
_variant_t name_chn;
_variant_t name_py;
CString name_chn_record = " ' " ;
CString name_py_record = " " ;
bool flag = false;
while(!m_pPoiNameRecordset-> adoeof){
name_chn = m_pPoiNameRecordset-> GetCollect( "NAME_CHN ");
name_py = m_pPoiNameRecordset-> GetCollect( "NAME_PY ");
if (flag==false) {
flag = true;
}
else{
name_chn_record+= "% ";
name_py_record+= "% ";
}
name_chn_record+=((LPCTSTR)(_bstr_t)name_chn);
name_py_record+=((LPCTSTR)(_bstr_t)name_py);
}
NAME_CHN 和 NAME_PY 字段能够提取出来,但是这个循环却陷入了死循环
每次取出的数据都是一样的。
那为可以给分析一下原因
------解决方案--------------------
m_pPoiNameRecordset-> MoveNext();
------解决方案--------------------
呵呵,接分!
我谢了一个程序代码如下:
sql_string1.Format( "select NAME,NAME_CHN,NAME_PY from POINAME where NAME = %s ",name);
if(FAILED(m_pPoiNameRecordset-> Open(_variant_t(sql_string1),_variant_t((IDispatch *)m_pConnection,true),
adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox( "Create RecordSet Instance failed! ");
return NULL ;
}
_variant_t name_chn;
_variant_t name_py;
CString name_chn_record = " ' " ;
CString name_py_record = " " ;
bool flag = false;
while(!m_pPoiNameRecordset-> adoeof){
name_chn = m_pPoiNameRecordset-> GetCollect( "NAME_CHN ");
name_py = m_pPoiNameRecordset-> GetCollect( "NAME_PY ");
if (flag==false) {
flag = true;
}
else{
name_chn_record+= "% ";
name_py_record+= "% ";
}
name_chn_record+=((LPCTSTR)(_bstr_t)name_chn);
name_py_record+=((LPCTSTR)(_bstr_t)name_py);
}
NAME_CHN 和 NAME_PY 字段能够提取出来,但是这个循环却陷入了死循环
每次取出的数据都是一样的。
那为可以给分析一下原因
------解决方案--------------------
m_pPoiNameRecordset-> MoveNext();
------解决方案--------------------
呵呵,接分!