用driver={SQL Server};Server=192.168.4.1;DATABASE=shoufei;UID=sa;PWD=;在同一局域网中,为什么在有的机器能连上,有的机器不行呢?

解决方案 »

  1.   

    改用OLE DB连接。可能有的机器没有安装MDAC2.7组件。SQL Server需要MDAC2.7才能连接。
      

  2.   

    1.测试:ping <服务器IP地址>  
    先把防火墙软件暂时关闭,或者打开所有被封闭的端口。默认端口为1433。2.点击:程序 -> Microsoft SQL Server -> 服务器网络使用工具,打开该工具后看到的画面,启用的协议:命名管道以及 TCP/IP 协议。
    点中 TCP/IP 协议,选择"属性",检查 SQL Server 服务默认端口的设置。根据端口设置连接串。
    例:
    driver={SQL Server};Server=192.168.4.1,1433;DATABASE=shoufei;UID=sa;PWD=;祝你好运
      

  3.   

    ::CoInitialize(NULL);
    CString m_sConnsql;
    m_sConnsql= "Provider=SQLOLEDB; Data Source=192.168.0.201;Initial Catalog=test;User ID=yr;Password=101500";
         m_pConnsql.CreateInstance("ADODB.Connection");

        try
        {
            HRESULT hr=m_pConnsql->Open((_bstr_t)m_sConnsql,"yr","101500",adConnectUnspecified);    

            }
        catch(_com_error e)
        {
    AfxMessageBox("不能连接数据库!");
            return TRUE;
        }
      

  4.   

    _bstr_t sql= "Provider=SQLOLEDB; Data Source=000.000.000.000,1433;NETWORK=DBMSSOCN;Initial Catalog=databaseName;User ID=userName;Password=Password";
    m_pConnection->Open(sql,"","",NULL);
      

  5.   

    #include "comdef.h"
    #import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    _ConnectionPtr   pCon;
    _RecordsetPtr    pRs;
    _variant_t       vpRsAffected,RecordsAffected;
    BOOL FConnected;
    BSTR bstrSQL;
    CString StrSql;
    HRESULT Flag;
    try
    {
    Flag = pCon.CreateInstance("ADODB.Connection");//创建Connection对象
    if(SUCCEEDED(Flag))
    Flag=pCon->Open((_bstr_t)"driver={SQL Server};Server=服务器名(可以是IP);DATABASE=数据库名;UID=数据库登录名;PWD=数据库口令","","",adModeUnknown);//连接数据库
    if(SUCCEEDED(Flag))
    Flag=pRs.CreateInstance("ADODB.Recordset");
    if(SUCCEEDED(Flag))
    FConnected=TRUE;
    else
    FConnected=FALSE;
    }
    catch(_com_error&err)
    {
    FConnected=FALSE;
    }
    if(!FConnected)
    AfxMessageBox("连接服务器的数据库失败!请检查网络正常!或其它!");StrSql="sp_RunSql";    //sp_RunSql存储过程名称
    bstrSQL=LDB_User->RunSql.AllocSysString(); 
    pRs->Open(bstrSQL,(IDispatch*)pCon,adOpenDynamic,adLockOptimistic,adCmdText);
    //driver={SQL Server};Server=服务器名(可以是IP);DATABASE=数据库名;UID=数据库登录名;PWD=数据库口令
      

  6.   

    Server写上IP不就可以了?关键是要看装SQL的服务器让不让外部连进去了!
      

  7.   

    运行程序的机器有sql server 的数据库引擎吗?