我有一个使用OBDC访问MS Access数据库的MFC应用程序。
我正在尝试将新记录插入表中,但我得到了一个 WinPASS.exe中0x7705C44D的第一次机会异常:Microsoft C ++异常:int在内存位置0x0039D470。
这是代码
CDatabase db;
LPCTSTR lpszConnect = _T("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:\\Users\\New folder\\AccessDB.accdb;");
BOOL result = db.OpenEx(lpszConnect, CDatabase::noOdbcDialog);
CString test;
if (!result)
{
AfxMessageBox("Could not find AccessDBfile");
}
CString sql;
sql.Format("INSERT INTO UserSelection( GroupName ) VALUES ( 'Something' )");
try
{
db.ExecuteSQL(sql);
}
catch (CDBException* pe)
{
pe->ReportError();
pe->Delete();
AfxMessageBox(pe->m_strError);
}
此代码实际上是一个循环,第一次运行它将在第二次运行时创建异常错误并在表中插入信息。所以它基本上有效,这是一个奇怪的错误。有没有人知道可能出现什么问题?
编辑:忘记添加,它不会崩溃只是在ExecuteSQL
有异常。此外,CDBException
没有发现错误。
感谢。