求助!!一个困扰了我大量时间的ADO批删除问题

Yiexingzhi Yiexingzhi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大哥们,我详细查看了MSDN中关于用ADO批量删除即delete的细节(单独删除一个不会有问题),
1,我先是用了ADO控件方式(ADO+DATAGRID)批删,代码如下:
C_Recordset recset = m_Ado_Rb.GetRecordset ();

recset.SetFilter ( _variant_t ( "姓名 like '1'" ) );
recset.CancleUpdate ();
recset.Delete ( 2 );//adAffectGroup值为2,adAffectCurrent值为1
recset.Update ( );
recset.Close ();

结果总是弹出一对话框,内容是:此环境下无法操作

2,没办法后我采用了第二种纯编码方式(删除一个也不会有问题,还是批删除出错),代码如下:
try
{
// 假设删除第二条记录
m_pRecordset->MoveFirst();
m_pRecordset->Filter = "姓名 like '1'";
//_variant_t va( (long)ADODB::adFilterAffectedRecords );
//m_pRecordset->put_Filter ( va );
m_pRecordset->CancelUpdate ();
m_pRecordset->Delete( ADODB::adAffectGroup ); // 参数 adAffectCurrent为删除当前记录adAffectGroup为批量删除

m_pRecordset->Update();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
批删除还是有问题,是否你们在写批量删除时也遇到了类似的问题,运行后弹出一对话框,报错内容如下:
Runtime Error!
This application has requested,the runtime to terminate it in an unusual way.Please contact the application's support team for more information.

我试了N种办法,可是还是没治,大量的资料也没有提到这种问题,我很仔细地看了MSDN,如:
adAffectGroup 2 Affects only records that satisfy the current Filter property setting. You must set the Filter property to a FilterGroupEnum value or an array of Bookmarks to use this option.


可是真不知道怎么回事,就是不能解决问题,只有求助大哥们了,看能有什么好办法 ,我实在是舍不得再让这种问题消耗大量的时间了。愿给高分。但是用Command执行SQL的方法可以批量删除,请回帖的时候不要再写这种方法了,谢谢大家!
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
Yiexingzhi
数据库 4,017 成员 39,805 内容