具体代码 
try
{
m_pConnect.CreateInstance(__uuidof(Connection));
m_pConnect->Open(_bstr_t(str_server),"","",adModeUnknown);
if(m_pConnect->State)
{
AfxMessageBox("数据库连接成功");
m_pConnect->Close();
}
}
catch (_com_error e) 
{

CString errormessage; 
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage()); 
AfxMessageBox(errormessage);///显示错误信息 

}

解决方案 »

  1.   

    刚测试了一下发现
    m_pConnect.CreateInstance(__uuidof(Connection)); 
    创建对象失败了
    可为什么在我机器上就能正确运行
      

  2.   

    我用的是vc6.0   
    另外一台机器上装了mdac2.7
      

  3.   

    要装相应版本的ADO, MDAC.EXE
      

  4.   

    m_pConnect.CreateInstance(__uuidof(Connection));  
    如果是这句失败,则需要修改一下:
    ::CoInitialize(NULL)看是不是写成了CoInitialize(NULL) 而没有::;
    例外,最好把这个代码放在工程初始化的时候。
      

  5.   

    把MSADO15.DLL拷到工程目录下
    #import "msado15.dll" rename("EOF", "ADOEOF") rename("BOF", "ADOBOF")
      

  6.   

    如果CreateInstance()都失败,那说明你还没有走到和数据库连接这一步.最好看看你的COM环境有否正确的初始化.想不出别的原因了.
      

  7.   


    #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
    程序开有导入文件,你们的系统是不是都装C盘啊?
      

  8.   

    我也遇到过 这个问题
    到网上下mdac_typ2.8 给别人装下吧
    http://www.mpsoft.net/mdac_typ.exe 
    绝对正确
      

  9.   

    异常捕获到了么?? 把你的e.ErrorMessage() 改成e.Description()试试看..
      

  10.   

    我的遇到这样奇怪的问题了!!!!!!有些机器可以正常运行有些却不可以!!!说什么指针出错了!!try
    {
    m_pConn->Open(_bstr_t(CnnStr),"","",adConnectUnspecified);
    m_Actived=TRUE;
    return TRUE;
    }
    catch(_com_error &e)
    {
    MessageBox(NULL,e.ErrorMessage(),e.Description(),MB_OK);
    ::AfxMessageBox("Data Can't Open");
    return FALSE;
    }
      

  11.   

    打sql补丁了没有???
    防火墙关闭了吗??一般我连别的机子时,我都是用IP来连的;