VC++  用ADO 连接 SQL2005数据库在做删除按钮的时候 代码如下: try
{
pRs->Delete(adAffectCurrent);
pRs.MoveNext();
if (pRs->adoEOF)
{
pRs->MoveLast();
}

Display();   //显示数据
    
}
catch(_com_error e)         //捕捉异常
{
AfxMessageBox(e.Description());
}点删除按钮就出现那样的错误了!!!pRs->Open(_bstr_t(sql),_variant_t(pConn,true),adOpenStatic,adLockOptimistic,adCmdText);//pRs的Open方法!!请高手帮忙解决一下~~~~~~

解决方案 »

  1.   

    pRs->Delete(adAffectCurrent);
    不要这句试下。
      

  2.   

    ...
    那你直接用SQL语句删除不就行了,哪用得着这样。
    delete from table where field ='xxxx'
      

  3.   

    我对SQL语句不会 有个编辑框控件的变量为m_Name  Name在数据库里是主键 怎样做判断把整行记录删除啊?
      

  4.   

    http://www.w3school.com.cn/sql/sql_delete.asp
      

  5.   

    跟用Delete(adAffectCurrent)的效果一样 都能删除数据   可还是提升一样的错误!! 之后就崩溃了  呜呜~~
      

  6.   

    pRs->Delete(adAffectCurrent);
    pRs.MoveNext();可能是只有一行数据  删完已经到adoEOF了 在MoveNext就错了 试试MoveNext之前判断下建议用sql语句删哦
      

  7.   

    m_pConn->Execute("delete from table where field='xxx'", NULL, NULL);
    就可以了,其他语句都不需要。
      

  8.   

    还是不行啊  能够删除 但是删了之后 按别的键就崩溃了~~~~根本不知道那pRs指针指到哪里去了。用Access 好像就不会出现这个问题~~~我刚用别的方法 就是删除数据后 关闭那个表 再重新连接那个表  就可以了 不够指针只能指向第一段和最后段~~~~~
      

  9.   

    如果你是想删除纪录,那可以不用_RecordsetPtr.
    直接用_ConnectionPtr执行SQL删除语句就行了,
    CoInitialize(NULL); 
    _ConnectionPtr m_pConn;

    m_pConn.CreateInstance("ADODB.Connection");       
    m_pConn->CursorLocation   =   adUseServer;
    m_pConn->CommandTimeout = 5;
    m_pConn->Open("Driver={SQL Server};DataBase=table;Server=192.168.0.1;uid=;pwd=;","","",adOpenUnspecified);         
    m_pConn->Execute("delete from table where field='xxx'", NULL, NULL);
    m_pConn->Close();