得到查询结果后怎样移动记录指针
答案:2 悬赏:20 手机版
解决时间 2021-03-03 06:47
- 提问者网友:我一贱你就笑
- 2021-03-02 21:46
得到查询结果后怎样移动记录指针
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-03-02 22:24
通常我这么写
theApp.ADOExecute(m_pRecordset, strQuery);
while(!m_pRecordset-> adoEOF)
{
for (i = 0; i < m_pRecordset-> GetFields()-> Count; i++)
{
CString str = (char*)(_bstr_t)m_pRecordset-> GetFields()-> GetItem((long)i)-> Value;
}
m_pRecordset-> MoveNext();
}
m_pRecordset-> Close();
bool CSignalApp::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
if ( ADOSet-> State == adStateOpen) ADOSet-> Close();
try
{
ADOSet-> Open(strSQL, m_pConnection.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format( "ADO Error: %s ",(char*)e.Description());
AfxMessageBox(err);
return false;
}
}
theApp.ADOExecute(m_pRecordset, strQuery);
while(!m_pRecordset-> adoEOF)
{
for (i = 0; i < m_pRecordset-> GetFields()-> Count; i++)
{
CString str = (char*)(_bstr_t)m_pRecordset-> GetFields()-> GetItem((long)i)-> Value;
}
m_pRecordset-> MoveNext();
}
m_pRecordset-> Close();
bool CSignalApp::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
if ( ADOSet-> State == adStateOpen) ADOSet-> Close();
try
{
ADOSet-> Open(strSQL, m_pConnection.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format( "ADO Error: %s ",(char*)e.Description());
AfxMessageBox(err);
return false;
}
}
全部回答
- 1楼网友:雪起风沙痕
- 2021-03-02 22:32
数据库查询返回的是一个结果集对象,结果集包含你所查找的所有记录,即可能对应着数据库的多条记录,如果要实现正常取值,就必须对结果集进行循环遍历,而指针移动可以指出当前遍历到哪条记录,并通过它拿出当前记录的有关字段信息。简单的说,指针移动就是实现循环遍历。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯