想删除记录,CUnitInfoSet 继承 CRecordset,         CString strSQL = _T("DELETE FROM tb_UnitData Where id=100");
         CDatabase db;
CUnitInfoSet * pRecordSet = new CUnitInfoSet(&db); // 构造时会取得DSN
TRY
{
if (!pRecordSet->IsOpen())
pRecordSet->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);/* 出错,是不是不能用DELETE语句打开数据库      */

if (!db.CanTransact()) //测试数据驱动是否支持事务处理
{

return;
}
else

if (!db.BeginTrans()) //开始事务
{

return;
}

db.ExecuteSQL(strSQL);
db.CommitTrans();
}
} CATCH (CDBException, e)
        {           db.Rollback();
        }请问该怎么修改才能达到删除记录的目的?谢谢

解决方案 »

  1.   

    CString   strSQL   =   _T( "select * FROM   tb_UnitData   Where   id=100 "); 然后后面用pRecordSet->delete(......)............
      

  2.   

    dirdirdir3
    ---------------
    pRecordSet->delete();//只是删除当前记录, 如果有几十万条记录,循环要多少时间?效率低啊
    更好的办法是什么?谢谢
      

  3.   

    你不是实现了?执行delete的SQL
      

  4.   

    Tr0j4n
    -----------
    delete的SQL并没有被执行啊?
      

  5.   

    CString strCmd = "DELETE   FROM   tb_UnitData   Where   id=100";TRY
    {
       m_db.ExecuteSQL( strCmd );
    }CATCH(CDBException, e)
    {
       // The error code is in e->m_nRetCode
    }END_CATCH
      

  6.   

    顺便提醒你下,事务还可以将begin Transact等事务语句写到那条SQL里面,一样是通过事务执行的