ado删除记录出错为什么 可以正常的打开数据库,读取记录,但是执行pRst->Delete(adAffectCurrent)时总是出现错误,而且是Unknown error 0x800A0CB3 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加异常捕获看是什么错误try{//你的ADO代码}catch (_com_error& e){CString strMsg;strMsg.Format(_T("错误描述:%s\n错误消息%s", (LPCTSTR)e.Description(), (LPCTSTR)e.ErrorMessage());AfxMessageBox(strMsg);} 谢谢 我试了 结果出现这个错误描述是:当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。错误信息是:Unknown error 0x800A0CB3我是刚开始学习这个知识 不太明白这个 是我打开结果集的部分就已经有错误了嘛 pRst->Open("select * from dept",pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); while (!pRst->adoEOF) { pRst->MoveFirst(); pRst->Move(1); pRst->Delete(adAffectCurrent); pRst->Update(); AfxMessageBox("删除完毕!"); pRst->Close(); } pRst->Move(1);先屏蔽掉试试。不能在循环里面关闭记录集。while (!pRst->adoEOF){pRst->MoveFirst();pRst->Delete(adAffectCurrent);pRst->Update();}AfxMessageBox("删除完毕!");pRst->Close(); 那样的话用SQL来删除好一些。DELETE FROM dept pRst->Open("select * from dept",pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);while (!pRst->adoEOF){pRst->MoveFirst();pRst->Move(1);pRst->Delete(adAffectCurrent);pRst->Update();AfxMessageBox("删除完毕!");pRst->Close(); }严重错误。在while外面close 按你的思路,应该是这样先select如果有值,先close,再delete如果无值,直接close其实你直接写delete的sql更方便,还不需要close 谢谢两位 我写的那个还是不对 把close放到外面也不行 改成下面这样用delete的sql语句写可以删除pRst=pConn->Execute("delete from STUDENT where SNAME='张立'",NULL,adCmdText);这是为什么啊 执行sql语句呗。你pConn->Open("delete...",...)都可以,自己试试。 应该不是 因为用sql语句的delete是可以删除的 谢谢各位的帮助 问题已经解决了 前面加上pConn->CursorLocation=(CursorLocationEnum)3;这条语句就好了 pConn->CursorLocation=(CursorLocationEnum)3;这条语句是什么意思啊?? MFC数据库编程问题(关于数据源问题) 如何在对话框中的相关控件(如Group Box)中绘制图形(如网格、坐标等)? 什么奇怪的问题都让我碰上了,帮帮忙看看???????????? 问一个MFC的数据库ODBC连接,救命啊 sdi程序,我想在程序启动时,去掉菜单(以后也不会用到),如何写? 高分!大家一起帮小弟讨论一下就业(本科刚毕业)时的户口问题!! 在listview怎么填充选中的某一行的背景色? 请问如何取得一个正在运行程序的句柄? 在vc中右击函数名选定位怎么说没定义啊 多线程问题,很诡异,期待高手出现! 深度坐标干嘛的??求一针见血的解释 窗口左键单击才能接收到键盘消息
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s",
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}
我是刚开始学习这个知识 不太明白这个 是我打开结果集的部分就已经有错误了嘛
pRst->Open("select * from dept",pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
while (!pRst->adoEOF)
{
pRst->MoveFirst();
pRst->Move(1);
pRst->Delete(adAffectCurrent);
pRst->Update();
AfxMessageBox("删除完毕!");
pRst->Close();
}
{
pRst->MoveFirst();
pRst->Delete(adAffectCurrent);
pRst->Update();}
AfxMessageBox("删除完毕!");
pRst->Close(); 那样的话用SQL来删除好一些。
DELETE FROM dept
while (!pRst->adoEOF)
{
pRst->MoveFirst();
pRst->Move(1);
pRst->Delete(adAffectCurrent);
pRst->Update();
AfxMessageBox("删除完毕!");
pRst->Close();
}
严重错误。
在while外面close
先select
如果有值,先close,再delete
如果无值,直接close
其实你直接写delete的sql更方便,还不需要close
pRst=pConn->Execute("delete from STUDENT where SNAME='张立'",NULL,adCmdText);
这是为什么啊
你pConn->Open("delete...",...)都可以,自己试试。