CString strTemp;
  strTemp.Format(_T("DELETE  FROM user_info where id>10")); try
{
     m_pRecordset1->Close();
m_pRecordset1->Open((_variant_t)strTemp,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
       
}
catch(...)
{
            this->MessageBox("数据库打开失败!","错误");
    
}-------------------
执行select
strTemp.Format(_T("SELECT * FROM user_info where id>150"));
try
{
     m_pRecordset1->Close();
m_pRecordset1->Open((_variant_t)strTemp,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
       
}
catch(...)
{
            this->MessageBox("数据库打开失败!","错误");
    
}

解决方案 »

  1.   

    建议不要用_RecordsetPtr来执行非查询语句,你前面的delete可以换_ConnectioPtr的Execute来执行,或者用_CommandPtr
      

  2.   

    讲解ADO知识:
    http://www.vckbase.com/document/viewdoc/?id=215
    一个具体的例子:
    http://www.vckbase.com/document/viewdoc/?id=496
      

  3.   

    试试pRecordset->Close前先判断if(m_pRecordset->State)
            m_pRecordset->Close();     
    m_pRecordset1->Open((_variant_t)strTemp,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);