我开发了一个VC程序,用ADO连接SQLSERVER数据库。现在在本机上运行正常,但是做成Realase版拷贝到别人的电脑上,运行程序时老是连接不上数据库,不知是哪里的问题,请大家帮忙分析分析。连接代码:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")bool CController::ConnectToDB()
{
    CoInitialize(NULL);
    HRESULT hr;
    _ConnectionPtr con;//_ConnectionPtr是一个连接接口    try
    {
        hr = CController::con.CreateInstance("ADODB.Connection");
        if(!SUCCEEDED(hr))
            AfxMessageBox("初始化连接失败!");
        hr = CController::con->Open("Driver={SQL Server};Server=xuke;database=TCM;UID=sa;PWD=123456","","",adModeUnknown);
        if(!SUCCEEDED(hr))
            AfxMessageBox("连接失败!");
    }
    catch(...)//捕捉异常
    {
        //AfxMessageBox(e.ErrorMessage());
        AfxMessageBox("连接失败!");
        return false;
    }
    return true;
}

解决方案 »

  1.   

    mdac客户端是什么?能具体说一下吗?
      

  2.   

    mdac是一个微软的,访问数据库的组件,要不就单独装这个,要不就装sql server客户端。
    要不就用odbc吧
      

  3.   

    “要不就用odbc吧”
    那ADO不行吗?
      

  4.   

    客户端上有这个文件吗?
    C:\Program Files\Common Files\System\ado\msado15.dll
      

  5.   

    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace 
    没有msado15.dll,你import什么?
      

  6.   

    看一下客户端上的数据源配置了吗?
    可以在生成Realase版时,在项目配置中,选择静态连接.dll.
      

  7.   

    =======================
    “要不就用odbc吧”
    那ADO不行吗?
    =======================
    odbc和ADO两种概念吧? 它们怎么能互相取代呢?
      

  8.   

    斑主的可能是ado的版本不对,建议升级ChangeMyHead(改头换面) :建议建立一个odbc源
      

  9.   

    怀疑是版本问题
    从ODBC建一个源,然后连接一下
    可能ADO就可以了
      

  10.   

    我也有同样的问题
    我也是开发了一个VC程序,用ADO连接SQLSERVER数据库。现在在本机上运行正常,换过ADO的属性连接其他机子有时能连接上,操作也是有时成功,总出现的错误就是“超时已过期”,高手帮忙
      

  11.   

    hr = CController::con->Open("Driver={SQL Server};Server=xuke;database=TCM;UID=sa;PWD=123456","","",adModeUnknown);
    -----------------
    把其中的server=xuke 改为server=数据库所在的ip地址