CDatabase ExecuteSQL可以工作,但不适用于插入

时间:2015-05-26 00:27:49

标签: database mfc

我有一个使用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没有发现错误。

感谢。

0 个答案:

没有答案