删除Adodc连接当前表的所有记录有关问题
删除Adodc连接当前表的所有记录问题
想实现删除Adodc连接当前表的所有记录,代码如下
nDel = AfxMessageBox( "你确定要删除此条短信,单击\ "确定\ "删除!单击\ "取消\ "退出! ", MB_YESNO);
if ( nDel == IDYES )
{
m_ctlAdodc1.GetRecordset().Delete( 3 );
}
问题:
1.执行时出错,提示 "操作在该内容中不被允许 ".但将参数3换为1,即删除当前记录则正常.
不知是什么原因?
2.C_Recordset::Delete(long AffectRecords)的函数参数是否与下面参数意义一样呢?
BOOL CAdoRecordSet::Delete(AffectEnum AffectRecords)
Params: AffectRecords 该值可以是下列常量之一.
[常量] [说明 ]
AdAffectCurrent 1 默认 仅删除当前记录.
AdAffectGroup 2 删除满足当前 Filter 属性设置的记录.
adAffectAll 3 删除所有记录.
adAffectAllChapters 4 删除所有子集记录.
3.用delete语句实现也出错
strSQL = "delete from tbRecv ";
m_ctlAdodc1.SetRecordSource( strSQL );
m_ctlAdodc1.Refresh();
提示 "对象关闭时,操作不被允许 ",但实际记录可以全部删除.
1)将delete语句改为select语句则正常.
------解决方案--------------------
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;
CString strsql;
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand-> ActiveConnection = m_pConnection;
m_pCommand-> CommandText = "DELETE FROM mytable ";
m_pCommand-> Execute(NULL, NULL,adCmdText);
想实现删除Adodc连接当前表的所有记录,代码如下
nDel = AfxMessageBox( "你确定要删除此条短信,单击\ "确定\ "删除!单击\ "取消\ "退出! ", MB_YESNO);
if ( nDel == IDYES )
{
m_ctlAdodc1.GetRecordset().Delete( 3 );
}
问题:
1.执行时出错,提示 "操作在该内容中不被允许 ".但将参数3换为1,即删除当前记录则正常.
不知是什么原因?
2.C_Recordset::Delete(long AffectRecords)的函数参数是否与下面参数意义一样呢?
BOOL CAdoRecordSet::Delete(AffectEnum AffectRecords)
Params: AffectRecords 该值可以是下列常量之一.
[常量] [说明 ]
AdAffectCurrent 1 默认 仅删除当前记录.
AdAffectGroup 2 删除满足当前 Filter 属性设置的记录.
adAffectAll 3 删除所有记录.
adAffectAllChapters 4 删除所有子集记录.
3.用delete语句实现也出错
strSQL = "delete from tbRecv ";
m_ctlAdodc1.SetRecordSource( strSQL );
m_ctlAdodc1.Refresh();
提示 "对象关闭时,操作不被允许 ",但实际记录可以全部删除.
1)将delete语句改为select语句则正常.
------解决方案--------------------
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;
CString strsql;
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand-> ActiveConnection = m_pConnection;
m_pCommand-> CommandText = "DELETE FROM mytable ";
m_pCommand-> Execute(NULL, NULL,adCmdText);