在initialinstance()里面加入如下代码:
m_pConnection.CreateInstance( __uuidof(Connection) );
try
{
        m_pConnection->Open("Driver=SQL Server;Server=127.0.0.1;\
Database=MyDB;UID=qx;PWD=esc","","",adModeUnknown);
}
catch(_com_error e)
{
CString error;
error.Format("fail reason\r\n%x",e.Error());
AfxMessageBox(error);
}
然后程序运行,得到HRESULT = 0x80004005(不可知的错误);
不知那位大侠可以帮助一下
运行环境:sql2000+vc6

解决方案 »

  1.   

    catch(_com_error e)
    改为:
    catch(_com_error& e)
    再看吧。
      

  2.   

    用messagebox显示errormessage是
    “未指定的错误”
      

  3.   

    HRESULT hr;
    try
    {
    hr=m_pConnection.CreateInstance("ADODB.Connection");
    if(SUCCEEDED(hr))
    {
    hr=m_pConnection->Open("Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=study","","",adModeUnknown);
    }
    }
    catch(_com_error e)
    {
    CString errorMessage;
    errorMessage.Format("数据库连接失败!\r\n错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errorMessage);
    return false;
    }
      

  4.   

    我已经试过了,createinstance运行是正确的
    迷茫ing
      

  5.   

    将传入Open的字符串赋给一_bstr_t变量,再将该_bstr_t变量传入Open试试看
      

  6.   


    我又开了一个新的project,就加上这几行代码,可是还是不幸
      

  7.   

    dakra同志:
    能不能说一下到底是数据库那里的问题
      

  8.   

    我是连接赏了,可是只能连接一次,为什么。我得connection 是close的了
    ,还有什么额外的销毁工作么??
    谢谢
      

  9.   

    没有啊!你肯定什么地方不小心写错了,你第一次写吗?
    如果是就多看看ADO连SQL的例子,从中查错.