使用m_pSet指针时出现“试图越过数据的有效存储区间”提示,望达人赐教,该怎么处理
使用m_pSet指针时出现“试图越过数据的有效存储区间”提示,望达人赐教
我使用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();
时出现如题警告框。
望达人赐教。
------解决方案--------------------
在使用m_pSet-> MoveFirst()这个以前,需要判断:
1。m_pSet是否是有效的指针。
2。数据库中是否有记录。
3。数据库打开时使用的游标的类型是什么,如果是向前,如果数据库的游标已经到达尾部或者其他的地方,总之不在头,则可能出现读失败,或者出现违规操作。
我使用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();
时出现如题警告框。
望达人赐教。
------解决方案--------------------
在使用m_pSet-> MoveFirst()这个以前,需要判断:
1。m_pSet是否是有效的指针。
2。数据库中是否有记录。
3。数据库打开时使用的游标的类型是什么,如果是向前,如果数据库的游标已经到达尾部或者其他的地方,总之不在头,则可能出现读失败,或者出现违规操作。