请教:线程中处理数据库问题。急急急!!!!
线程函数如下:
UINT ThreadProc(LPVOID pParam)
{
CDaoDatabase m_System_Database;
CSystemSet m_SystemSet;
if (! m_System_Database.IsOpen())
{
try
{
m_System_Database.Open("C:\\system.mdb");
}
catch (CDaoException* e)
{
AfxMessageBox(e->m_pErrorInfo->m_strDescription);
e->Delete();
return false;
}
}
//如果找不到指定的Access数据库文件,报错退出
if (!m_System_Database.IsOpen())
{
MessageBox(NULL,"打开数据库system.mdb错误!\n请检查一下该文件是否在当前目录中。","error",MB_OK|MB_ICONERROR);
return false;
}
//初始化各个CDaoRecordset子类变量
m_SystemSet.m_pDatabase = &m_System_Database;
try
{
m_SystemSet.Open();
}
catch(CDaoException* e)
{
AfxMessageBox(e->m_pErrorInfo->m_strDescription);
e->Delete();
return false;
}
m_SystemSet.m_strSort="SystemNo";
m_SystemSet.Requery();
//=====读取数据库记录
....
//======
return 1;
}
CMyClassDlg是基于对话框的类。
//按钮单击函数
CMyClassDlg::OnButton1()
{
AfxBeginThread(MyThreadProc,NULL);
}
按钮单击函数中只启动一个线程,能够获得数据库的记录,但关闭应用程序(基于对话框)时,报内存访问错,请教各位大侠,原因是什么???