初学ADO技术,老是runtime error
初学ADO技术,总是runtime error
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof( Connection ));
_RecordsetPtr pst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=lyx;Data Source=XP-201203202245";
pConn->Open("","","",adModeUnknown);
//pst=pConn->Execute("insert into Student values('2016','陆','男',24,'sf')",NULL,adCmdText);
//pConn->Execute("insert into Student values('2014','陆','男',24,'sf')",NULL,adCmdText);
pst->Open("select * from Student",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
pst->Open("insert into Student values('2020','陆','男',24,'sf')",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
pst->AddNew();
pst->PutCollect("Sname",_variant_t("8"));
pst->Update();
while(!pst->rsEOF)
{
((CListBox *)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pst->GetCollect("Sno"));
pst->MoveNext();
}
pst->Close();
pConn->Close();
pConn.Release();
pst.Release();
CoUninitialize();
要是添加部分 pst->AddNew();
pst->PutCollect("Sname",_variant_t("8"));
pst->Update();
while(!pst->rsEOF)注释掉,运行无错误,加上就弹出runtime error。看了网上很多教程,别人这么做都可以,为什么到了我这就不行了呢,请高手不吝赐教(其中Sname为char(9))……
------解决方案--------------------
异常捕获改成这样看是什么错误
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof( Connection ));
_RecordsetPtr pst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=lyx;Data Source=XP-201203202245";
pConn->Open("","","",adModeUnknown);
//pst=pConn->Execute("insert into Student values('2016','陆','男',24,'sf')",NULL,adCmdText);
//pConn->Execute("insert into Student values('2014','陆','男',24,'sf')",NULL,adCmdText);
pst->Open("select * from Student",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
pst->Open("insert into Student values('2020','陆','男',24,'sf')",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
pst->AddNew();
pst->PutCollect("Sname",_variant_t("8"));
pst->Update();
while(!pst->rsEOF)
{
((CListBox *)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pst->GetCollect("Sno"));
pst->MoveNext();
}
pst->Close();
pConn->Close();
pConn.Release();
pst.Release();
CoUninitialize();
要是添加部分 pst->AddNew();
pst->PutCollect("Sname",_variant_t("8"));
pst->Update();
while(!pst->rsEOF)注释掉,运行无错误,加上就弹出runtime error。看了网上很多教程,别人这么做都可以,为什么到了我这就不行了呢,请高手不吝赐教(其中Sname为char(9))……
ADO
runtime error
添加数据
------解决方案--------------------
异常捕获改成这样看是什么错误
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"),
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}