一个数据库的问题,up有分!
五行缺钱 2003-06-11 05:48:46 我在程序初始化时打开数据库,代码为:
#ifdef _AFXDLL
AfxGetModuleState()->m_dwVersion = 0x0601;
#endif
g_pDatabase = new CDaoDatabase;
g_pDatabase->Open(_T("app.mdb"));
g_pWorkspace = g_pDatabase->m_pWorkspace;
然后创建了一个线程,在线程中执行如下的代码:
CUserRecordset *pUserRecordset = new CUserRecordset(g_pDatabase);
try
{
pUserRecordset->Open(dbOpenDynaset);
}
catch(CDaoException *e)
{
e->ReportError();
e->Delete();
return 1;
}
g_pWorkspace->BeginTrans();
pUserRecordset->AddNew();
pUserRecordset->m_UserName = _T("name1");
pUserRecordset->Update();
g_pWorkspace->CommitTrans();
pUserRecordset->Close();
其中CUserRecordset是继承与CDaoRecordset的一个类,与一个数据库表格关联。这样在线程中执行到pUserRecordset->Open(dbOpenDynaset);这句时就会弹出一个对话框:Unhandled exception in App.exe(DAO360.DLL):0xC0000005:Access Violation.不知道什么原因。我试过把线程中的这段代码加入到打开数据库的后面,就能正确执行。
使用的时Access2000数据库。请各位高手指教。
分不够再加!