每次一执行到这里就出错:
hr=pRs->Open(varSTR,varConn,adOpenDynamic,adLockBatchOptimistic,adCmdText);错误也捕捉不了.能编译过去,但一点击按钮运行到上面那句就弹出这个信息:mfclearn.exe中的0x7c815dea处最可能的异常:Microsoft c++ exception:_com_error@0x0012f188.(中断,继续,忽略)下面是完整的源码:
stdafx.h里:
#import "c:\program files\common files\system\ado\msado15.dll" rename("EOF","adoEOF")using namespace ADODB;instance里:
if(S_OK!=OleInitialize(NULL))
{ AfxMessageBox("初始化COM组件库错误"); }
主程序里的按钮事件:
void CMFCLearnDlg::OnBnClickedButton5()
{
CString m_user,m_pass;
extern CString serverip;
GetDlgItemText(IDC_COMBO1,serverip);
GetDlgItemText(IDC_EDIT2,m_user);
GetDlgItemText(IDC_EDIT3,m_pass);_RecordsetPtr     pRs;
CString   strSQL,varSQL;varSQL="Provider=SQLOLEDB;Server=THREE-HMUKV5AW7;DataBase=User;UID=sa;PWD=1983131";
strSQL="select * from USER";
_variant_t varSTR(strSQL);
_variant_t varConn(varSQL);pRs.CreateInstance(__uuidof(Recordset));
pRs->Open(varSTR,varConn,adOpenDynamic,adLockBatchOptimistic,adCmdText); if(!pRs->adoEOF)
{
    EndDialog(1);
    control dlg;
    dlg.DoModal();
}else MessageBox("用户名或密码有误,请重新输入","提示",MB_ICONINFORMATION);
}哪位大哥能行行好,小弟我在此真的谢谢了.
此致敬礼.我真的好郁闷,饭吃不下,做事晕郁.跪谢!

解决方案 »

  1.   

    一看头晕~
    我一直用这个类~
    很不错~自己看
    http://www.vckbase.com/document/viewdoc/?id=668
      

  2.   

    try
    {
    pRs->Open(varSTR,varConn,adOpenDynamic,adLockOptimistic,adCmdText);   
    }
    catch(_com_error & e)
    {
    MessageBox(e.ErrorMessage());
    }
    我这样写了以后,点击继续,弹出:未知明的错误,我狂晕。我用的是vc.net请各位看看好吗?感激不尽。
      

  3.   

    try  
               {  
                           pRs-  >Open(varSTR,varConn,adOpenDynamic,adLockOptimistic,adCmdText);        
               }  
               catch(_com_error  &  e)  
               {  
                           MessageBox(e.ErrorMessage());  
               }  
    我这样写了以后,点击继续,弹出:未指定的错误,我狂晕。我用的是vc.net请各位看看好吗?感激不尽。
      

  4.   

    i am not familiar with the code, but my suggestion is taking a further look at pRs->Open(varSTR,varConn,adOpenDynamic,adLockBatchOptimistic,adCmdText);
    as well as
    pRs.CreateInstance(__uuidof(Recordset));comfort!
      

  5.   

    首先::CoInitinstance(NULL);//这句话非常重要的
    接着ConnectionPtr cnn;
        cnn.CreateInstance(_uuidof(Connection));
        cnn->Open();//设定东西
        RecordsetPtr rs;
        rs.open();即可
      

  6.   

    估计pRs的指针为NULL,说明初始化没有成功..
    pRs.CreateInstance(_uuidof(Recordset)); 好像么看到.
      

  7.   

    估计ADO出问题了,重装ADO试试。
      

  8.   

    for example:try  
    {  
      pRs->Open(varSTR,varConn,adOpenDynamic,adLockOptimistic,adCmdText);        
    }  
    catch(_com_error  &  e)  
    {  
       MessageBox(e.ErrorMessage());  
    }  
    catch(...)
    {
      MessageBox("unknown exception!");
    }就这样,试试;)
      

  9.   

    _ConnectionPtr m_pConnection; 
    _RecordsetPtr     pRs;
    CString   strSQL,varSQL;varSQL="Provider=SQLOLEDB;Server=THREE-HMUKV5AW7;DataBase=User;UID=sa;PWD=1983131";
    strSQL="select * from USER";
    _variant_t varSTR(strSQL);
    _variant_t varConn(varSQL);m_pConnection.CreateInstance("ADODB.Connection");
    m_pConnection->Open(varSQL, "","",adModeUnknown);
    pRs.CreateInstance(__uuidof(Recordset));
    pRs->Open(varSTR,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockBatchOptimistic,adCmdText);