mfc中用ado向access表格添加记录时出现异常

mfc中用ado向access表格添加记录时出现错误
我用以下代码建立连接,没有出错
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);
}

------解决方案--------------------
应该用_Recordset的指针对象 来插入修改数据
------解决方案--------------------
PutCollect
------解决方案--------------------
VC的ADO数据库查询与增删改操作实例,看完后你就知道了:

http://www.maoyeah.com/display.asp?boardid=3&id=43