首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ado删除记录出错为什么,该怎么解决

2012-03-15 
ado删除记录出错为什么可以正常的打开数据库,读取记录,但是执行pRst-Delete(adAffectCurrent)时总是出现

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...",...)都可以,自己试试。
[解决办法]
检查一下看是否违反了某种约束

热点排行