ado删除记录出错为什么
可以正常的打开数据库,读取记录,但是执行pRst->Delete(adAffectCurrent)时总是出现错误,而且是Unknown error 0x800A0CB3
[解决办法]
加异常捕获看是什么错误
- C/C++ code
try{//你的ADO代码}catch (_com_error& e){CString strMsg;strMsg.Format(_T("错误描述:%s\n错误消息%s", (LPCTSTR)e.Description(), (LPCTSTR)e.ErrorMessage());AfxMessageBox(strMsg);}
[解决办法]
pRst->Move(1);先屏蔽掉试试。不能在循环里面关闭记录集。
while (!pRst->adoEOF)
{
pRst->MoveFirst();
pRst->Delete(adAffectCurrent);
pRst->Update();
}
AfxMessageBox("删除完毕!");
pRst->Close();
那样的话用SQL来删除好一些。
- SQL code
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
[解决办法]
执行sql语句呗。
你pConn->Open("delete...",...)都可以,自己试试。
[解决办法]
检查一下看是否违反了某种约束