[急]使用ADO插入数据发生异常,寻求帮助

[急]使用ADO插入数据发生错误,寻求帮助!
在VC++6中使用下面的代码想要向数据库中插入一条数据,但是发生错误。
_ConnectionPtr   lp_adConn;
lp_adConn.CreateInstance(__uuidof(Connection));
lp_adConn-> Open(_bstr_t(ls_constr), " ", " ",adModeUnknown);
CString   ls_insert= "insert   into   A02_Strong_SMS   (SYSID,SMS_CONTENT,SMS_PHONE,SMS_CREATE_TIME,SMS_SEND_TIME)   values   ( 'systemid ', 'This   is   a   test   message ', '13800138000 ',getdate(),getdate()) ";
lp_adConn-> Execute(_bstr_t(ls_insert),NULL,adOptionUnspecified);
lp_adConn-> Close();

问题:
1、我不知道如何捕获其异常
2、执行过程中从Execute方法调用后抛出了异常,是不是说明数据库联接是成功了的?
3、我这样插入数据是否可以?

感谢各位!

------解决方案--------------------
这样做是可以的,你先直接在数据库环境下试试看这个sql语句能否成功。

com的调用通常都要异常捕捉处理,使用try - catch
抛出异常说明不成功。
例如:
try
{
m_pConnection-> Execute(_bstr_t(I_lpstrExec), &vRecords, adExecuteNoRecords);
}
catch(_com_error &e)
{
dump_com_error(e);
return (FALSE);
}
------解决方案--------------------
1。
try
{
...//你的数据库查询代码
}
catch(_com_error &e)
{
//可调用下面函数查看发生什么错误
e.Source()
e.Description()
e.Error
}

2。恩,我也觉得是成功了
3。检查下你的SQL语句插入数据类型对不对,再看看抛出的异常是什么
------解决方案--------------------
try 里面我就不说了,象楼上说的那样

catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format(_T( "错误信息:%s "),e.ErrorMessage());
AfxMessageBox(errormessage);

 _bstr_t bstrSource(e.Source());

_bstr_t bstrDescription(e.Description());

TRACE(_T( "\n Source : %s \n Description : %s \n "),(LPCSTR)bstrSource,(LPCSTR)bstrDescription);


}

你也可以把这些source 和 description都messagebox 出来
return (SUCCEEDED(hResult) ? TRUE : FALSE);
}


我也觉得你这个查询是没问题的,在数据库的查询里面试试这个sql语句呢??


------解决方案--------------------
楼主在这设一个断点,将SQL语句在查询分析器里面F5一下就知道怎么回事了。一般是数据库的约束,重复的值了吧。。