我已经将记录放入m_pRs里,当点击按钮时希望移动记录到下一条,到达记录末时,
希望移到第一条,写了下面语句,但到达最后一条记录时,在点按钮就会报错,
错误信息为:
Runtime Error
program:f:\.....\debug\aa.exe
abnormal program termination代码如下:
void CMyDlg::OnButton1()
{
CString str;
_variant_t v;
if(m_pRs->EndOfFile)
{
m_pRs->MoveFirst();
}
else
{
m_pRs->MoveNext();
}
v=m_pRs->GetCollect("单位名称");
str=(char*)_bstr_t(v);
m_name=str.GetBuffer(0);
v.Clear();
UpdateData(FALSE);
}
请高手帮忙,在线等待结帖。
希望移到第一条,写了下面语句,但到达最后一条记录时,在点按钮就会报错,
错误信息为:
Runtime Error
program:f:\.....\debug\aa.exe
abnormal program termination代码如下:
void CMyDlg::OnButton1()
{
CString str;
_variant_t v;
if(m_pRs->EndOfFile)
{
m_pRs->MoveFirst();
}
else
{
m_pRs->MoveNext();
}
v=m_pRs->GetCollect("单位名称");
str=(char*)_bstr_t(v);
m_name=str.GetBuffer(0);
v.Clear();
UpdateData(FALSE);
}
请高手帮忙,在线等待结帖。
{
...;
}
试试看
我用你的if(!(m_pRs->EndOfFile == VARIANT_FALSE))来替换我的if(m_pRs->EndOfFile)
还是同样的错误。该怎么办呀?
我想你是误解我的意思了,记录里肯定有记录,我知识想移到记录末尾时候转到第一条记录而已。有谁知道?谢谢!
{
m_pRs->MoveFirst();
}
else
{
m_pRs->MoveNext();
}注意正确设置rs的游标类型,否则不能MoveFirst
m_pRs->Open("select 单位名称 from f_dw where id<=10",m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
应该不是游标的问题吧,我刚试了,可以向前,也可以向后。
前提是我已经将记录移到了非第一条,但放到if语句就报错,是不是
if(m_pRs->EndOfFile)没法判断是否到了末尾,以至于到了末尾还m_pRs->MoveNext()
操作引起的?
...
m_pRs->MoveNext();//如果是最后一条记录,则m_pRs->EndOfFile触发为TRUE
if(m_pRs->EndOfFile)
{
m_pRs->MoveFirst();
}
...