Access 2003 + vc6.0删除中出现的一个简单问题,还请各位高手帮忙

shanhqk 2004-12-29 04:14:25
bool IsEmpty = true;
CString strSql = "select * from DefinitionD";
if (!Result.GetRecord(strSql))
{
return;
}//其中的Result.GetRecord(strSql)是程序中的一个类的一个函数
m_pRs = Result.GetRs();
while (!m_pRs->adoEOF)
{
IsEmpty = false;//保证数据不为空
break;
}
if (!IsEmpty)
{

m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
m_pRs->Delete(adAffectCurrent);
m_pRs->Update();
m_pRs->MoveNext();
}
}

当数据库中只有一条记录的时候出现的错误提示:
RunTime Error
执行程序.exe
ABNormal Program Termination
当数据库中有多条记录的时候没有出错!
...全文
177 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangqu_980371 2004-12-29
  • 打赏
  • 举报
回复
推荐你用标准sql写吧.
delete ....
shanhqk 2004-12-29
  • 打赏
  • 举报
回复
zhangqu_980371:
您好,谢谢您.
我也认为是那样的错误,但是我看了msdn,我也做了测试,如果您用MoveLast(),然后再用MoveNext(),它是不会出错的 ,同样,如果是您说的那样的话,那么,IsEof什么时候能够成立呀?

谢谢其他各位
我在xp下编写的程序,没有在windows 98下,只是在98下测试.
在xp下没有任何问题
zhangqu_980371 2004-12-29
  • 打赏
  • 举报
回复
当你只有一条记录的时候,
你看看:
m_pRs->Delete(adAffectCurrent);
m_pRs->Update();
你已经删除了这唯一的一条记录

然后你调用:(已经没有记录了)
m_pRs->MoveNext();

肯定报错了啊.
oyljerry 2004-12-29
  • 打赏
  • 举报
回复
try catch捕捉一下错误
qrlvls 2004-12-29
  • 打赏
  • 举报
回复
对数据库中的操作最好加上 try { } catch() 结构
处理异常的过程中可以避免很多问题
hjunxu 2004-12-29
  • 打赏
  • 举报
回复
估计是非法内存操作了
好好跟中以下
koko1998 2004-12-29
  • 打赏
  • 举报
回复
能不能跟一下,看看到底是哪一句出错拉呢!
我也作过类似的,没有问题。
xuzheng318 2004-12-29
  • 打赏
  • 举报
回复
up!

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧