我用以下代码建立连接,没有出错
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\USERS\\projects\\LogAn\\LogAn.mdb"),"","",adModeUnknown);
}
}
catch (CException* e)
{
CString errMsg;
e->GetErrorMessage(errMsg.GetBuffer(1), 1, NULL);
AfxMessageBox(errMsg, MB_OK);
}但是在向其中一张messages表格添加错误时程序崩溃了
在没有catch错误值钱,就已经发生unhandled exception错误了
try
{
m_pConnection->Execute(_T("INSERT INTO Messages VALUES(1, -1, 1036, '14 May 2001 15:1:1', 'TMG', 1, 1, 301, 'content', 'data')"), NULL, adCmdText);
}
catch (_com_error *e)
{
CString tmperr = e->ErrorMessage();
AfxMessageBox(e->ErrorMessage());
return FALSE;
}经过跟踪调试发现在这个地方,hr返回了一个很大的负数,而在:Open()方法里
hr能正确返回0,请问是什么原因啊?
inline _RecordsetPtr Connection15::Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options ) {
    struct _Recordset * _result;
    HRESULT _hr = raw_Execute(CommandText, RecordsAffected, Options, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _RecordsetPtr(_result, false);
}