使用m_pSet指针时出现“试图越过数据的有效存储区间”提示,望达人赐教

mrliu_xz 2007-09-20 04:35:31
我使用ODBC连接了一个数据库,
项目名称abc,
abcView中的相应代码为:
void CAbcView::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_abcSet;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}

我想在一个子对话框中对数据库进行操作,采用了如下办法:重载对话框的构造函数:
class CKuangQing : public CDialog
{
// Construction
public:
CKuangQing(CAbcSet* pSet , CWnd* pParent = NULL);
……
}

并采用如下方法调用:
void CAbcView::OnBUTKuangQing()
{
// TODO: Add your control notification handler code here
CKuangQing KQDlg(m_pSet);
KQDlg.DoModal();
}

该子对话框的构造函数为:
CKuangQing::CKuangQing(CAbcSet* pSet , CWnd* pParent /*=NULL*/)
: CDialog(CKuangQing::IDD, pParent)
{
m_pSet = pSet;
……
}

但在某方法中调用
m_pSet->MoveFirst();
时出现如题警告框。
望达人赐教。
...全文
213 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
victebaggio 2012-05-25
  • 打赏
  • 举报
回复
m_pset指向的记录集没有记录,是空的。
GuoBin509 2011-06-03
  • 打赏
  • 举报
回复
哥哥也遇到相同的问题了,求答案。。。。。。。。。。。。。
mrliu_xz 2007-09-21
  • 打赏
  • 举报
回复
汗。。我知道哪里错了,不是指针的问题。
谢谢shanhqk(山) 的提示。
mrliu_xz 2007-09-21
  • 打赏
  • 举报
回复
谢谢前面两位大哥,我测试一下看看。
shanhqk 2007-09-20
  • 打赏
  • 举报
回复
在使用m_pSet->MoveFirst()这个以前,需要判断:
1。m_pSet是否是有效的指针。
2。数据库中是否有记录。
3。数据库打开时使用的游标的类型是什么,如果是向前,如果数据库的游标已经到达尾部或者其他的地方,总之不在头,则可能出现读失败,或者出现违规操作。
luohongming 2007-09-20
  • 打赏
  • 举报
回复
m_pSet中没有记录。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧