有关问题:VS2010 MFC ADO ACCESS数据库:Microsoft C++ 错误: 内存位置 0x001def14 处的 _com_error
问题:VS2010 MFC ADO ACCESS数据库:Microsoft C++ 异常: 内存位置 0x001def14 处的 _com_error
// 初始化COM,为创建ADO连接等操作做准备
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 打开数据库连接
try
{
m_pConnection->Open("Provider = Microsoft.Jet.OLEDB.4.0;Data Source=UserManage.mdb", "", "", adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(_T("数据库连接失败!"));
return ;
}
//查询记录
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection = m_pConnection;
m_pCommand->CommandText =_T("select COUNT(*) from UserManageTab where 用户名 = 小杰");
m_pRecordset = m_pCommand->Execute( NULL, NULL, adCmdText);
运行的时候就会出现:sheji4.0.exe 中的 0x751cd36f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x001def14 处的 _com_error。
我发现是最后一句的问题,只要我加上m_pRecordset = m_pCommand->Execute( NULL, NULL, adCmdText);就提示那个错误,去掉就不提示错误了,但是不加是不行的啊,看网上人们基本就是这么写的啊?什么情况,小菜鸟再次请大虾们帮帮忙啦!
------解决方案--------------------
用户名 = 小杰
改成:
用户名 = '小杰'
// 初始化COM,为创建ADO连接等操作做准备
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 打开数据库连接
try
{
m_pConnection->Open("Provider = Microsoft.Jet.OLEDB.4.0;Data Source=UserManage.mdb", "", "", adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(_T("数据库连接失败!"));
return ;
}
//查询记录
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection = m_pConnection;
m_pCommand->CommandText =_T("select COUNT(*) from UserManageTab where 用户名 = 小杰");
m_pRecordset = m_pCommand->Execute( NULL, NULL, adCmdText);
运行的时候就会出现:sheji4.0.exe 中的 0x751cd36f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x001def14 处的 _com_error。
我发现是最后一句的问题,只要我加上m_pRecordset = m_pCommand->Execute( NULL, NULL, adCmdText);就提示那个错误,去掉就不提示错误了,但是不加是不行的啊,看网上人们基本就是这么写的啊?什么情况,小菜鸟再次请大虾们帮帮忙啦!
------解决方案--------------------
用户名 = 小杰
改成:
用户名 = '小杰'