我是VC7  在代码里有这么一段try
{
  m_pConnection.CreateInstance("ADODB.Recordset");
_bstr_t   strConnect= "Provider=SQLOLEDB;Server=WILBUR;Database=MyData;uid=wilbur;pwd=123;";
m_pConnection->Open(strConnect,"","",adModeUnknown);}而且把ADO Data控件属性里的
username :wilbur   password :123然后运行连接后就弹出来个什么提示消息都没有的警告框怎么办?

解决方案 »

  1.   

    m_pConnection.CreateInstance("ADODB.Connection"); 
    什么内容也没有的警告框应该是在catch(){}中弹出的。
      

  2.   

    try
    {
    m_pConnection.CreateInstance("ADODB.Connection");
    _bstr_t strConnect= "Provider=SQLOLEDB;Server=WILBUR;Database=MyData;uid=wilbur;pwd=123;";
    m_pConnection->Open(strConnect,"","",adModeUnknown);}
      catch(_com_error e)
    {AfxMessageBox(e.Description()); }
      

  3.   

    APP类的初始函数里加BOOL C???App::InitInstance()
    //-------COM初始化-------------//
    AfxOleInit();
      

  4.   

    SQL Server 2000
    我在InitInstance 里加的是 AfxEnableControlContainer(NULL);然后点一个按扭后就运行上面那些代码 就弹出那个什么提示都没有的警告框了
    AfxEnableControlContainer(NULL);改成AfxOleInit();的话在cmdtarg.cpp里出现assert错误CCmdTarget::~CCmdTarget()
    {
    #ifndef _AFX_NO_OLE_SUPPORT
    if (m_xDispatch.m_vtbl != 0)
    ((COleDispatchImpl*)&m_xDispatch)->Disconnect();
    ASSERT(m_dwRef <= 1);  //在这里出错了
    #endif
    #ifdef _AFXDLL
    m_pModuleState = NULL;
    #endif
    }
      

  5.   

    使用_RecordsetPtr接口(以连接SQL Server为例)
    _RecordsetPtr pPtr;
    if (FAILED(pPtr.CreateInstance("ADODB.Recordset")))
    {
    AfxMessageBox("Create Instance failed!");
    return FALSE;
    }CString strSRC;
    strSRC="Driver=SQL Server;Server=";
    strSRC+="210.46.141.145";
    strSRC+=";Database=";
    strSRC+="mydb";
    strSRC+=";UID=sa;PWD=";
    strSRC+="sa";CString strSQL = "select id,name,gender,address from personal";_variant_t varSRC(strSRC);
    _variant_t varSQL(strSQL);if(FAILED(pPtr->Open(varSQL,varSRC,adOpenStatic,adLockOptimistic,adCmdText)))
    {
    AfxMessageBox("Open table failed!");
    pPtr.Release();
    return FALSE;
    }