ITPub博客

首页 > 应用开发 > > MFC使用ADO连接数据库的一个错误

MFC使用ADO连接数据库的一个错误

作者:doudourabbit 时间:2019-08-13 14:46:35 0 删除 编辑

程序的功能是显示数据库的信息,我连接数据库后使用m_pRecordset->MoveNext();函数没有任何问题,但是想要回到上一条记录使用m_pRecordset->MovePrevious();就会报内存错误。

inline HRESULT Recordset15::MovePrevious ( ) {

HRESULT _hr = raw_MovePrevious();

if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));

return _hr;

}

使用movelast也不可以,只可以使用movenext。

这个是连接数据库的语句

m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C://Users//liu//Desktop//DataDisp1.mdb", "", "", adModeUnknown);

try

{

CString Sel = _T("SELECT * FROM Addresslist ");

m_pRecordset = m_pConn->Execute((_bstr_t)Sel, &RecordsAffected, adCmdText);

通过按钮转到下个记录没有任何问题

void CMFC1Dlg::OnBnClickedButton1()

{

m_pRecordset->MoveNext();

SetData();

OnPaint();

// TODO: 在此添加控件通知处理程序代码

}

通过按钮回到上条记录报错

void CMFC1Dlg::OnBnClickedButton2()

{

// TODO: 在此添加控件通知处理程序代码

m_pRecordset->MovePrevious();

SetData();

OnPaint();

}

在SetData中有个判断,如果是adoEOF就会回去,如果是adoBOF就会去下一条,里面的语句也会报错。

求大神解答什么问题

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4809/viewspace-3124731/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-25

  • 博文量
    193
  • 访问量
    1437