使用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。数据库打开时使用的游标的类型是什么,如果是向前,如果数据库的游标已经到达尾部或者其他的地方,总之不在头,则可能出现读失败,或者出现违规操作。