为什么我写数据进数据库的时候,到了m_pRecordset->Update()的时候就出错了呢?错误信息是IDispatch error #3119

时间:2021-10-14 04:31:23
各位大侠,帮帮忙!为什么我写数据进数据库的时候,到了m_pRecordset->Update()的时候就出错了呢?错误信息是IDispatch error #3119(修改和删除的时候发生了同样的事情)

代码如下:
int pos=m_gird.GetSelectionMark();
CADODB ADO;
ADO.OpenConnection(TEXT("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=平面设计公司业务管理系统;Data Source=LBWIN7"),TEXT(""),TEXT(""));
CString sql=(TEXT("select * from 员工信息"));
ADO.m_pRecordset.CreateInstance("ADODB.Recordset");
ADO.m_pRecordset->Open(_bstr_t(sql),ADO.m_pConnection.GetInterfacePt(),adOpenDynamic,adLockOptimistic,adCmdText);
    
try
{
ADO.m_pRecordset->Move((long)pos,vtMissing);
ADO.m_pRecordset->PutCollect(TEXT("员工编号"),(_bstr_t)m_xg_id);
ADO.m_pRecordset->PutCollect(TEXT("员工名"),(_bstr_t)m_xg_name);
ADO.m_pRecordset->PutCollect(TEXT("性别"),(_bstr_t)m_xg_sex);
ADO.m_pRecordset->PutCollect(TEXT("职位"),(_bstr_t)m_xg_zw);
ADO.m_pRecordset->PutCollect(TEXT("月薪"),(_bstr_t)m_xg_xs);
ADO.m_pRecordset->Update();//运行到这里出错弹出错误信息
ADO.CloseRecodset();
ADO.CloseConnection();
}
catch(_com_error e)
{
ADO.errormessage.Format(_T("修改失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(ADO.errormessage);
return;
}

MessageBox(TEXT("修改成功!"));

4 个解决方案

#1


你怎么知道是到了m_pRecordset->Update()的时候就出错了呢?

#2


e.ErrorMessage()改成(LPCTSTR)e.Description()就知道正确的错误提示了。

#3


引用 1 楼 youthpasses 的回复:
你怎么知道是到了m_pRecordset->Update()的时候就出错了呢?

因为我在这句的前后分别加了MessageBox(TEXT("出错"));第2个窗口没弹出,因此判断……

#4


不错不错!

#1


你怎么知道是到了m_pRecordset->Update()的时候就出错了呢?

#2


e.ErrorMessage()改成(LPCTSTR)e.Description()就知道正确的错误提示了。

#3


引用 1 楼 youthpasses 的回复:
你怎么知道是到了m_pRecordset->Update()的时候就出错了呢?

因为我在这句的前后分别加了MessageBox(TEXT("出错"));第2个窗口没弹出,因此判断……

#4


不错不错!