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

Yiexingzhi 2004-02-25 12:32:20
大哥们,我详细查看了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的方法可以批量删除,请回帖的时候不要再写这种方法了,谢谢大家!
...全文
27 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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