CString strServer = "192.168.0.16";
CString strDbName = "student";
CString strUser = "Administrator";
CString strPass = "";/////////////////////CString strConnect = _T("Provider=SQLOLEDB.1; Data Source=") + dbsrc + 
           _T("; Initial Catalog=") + dbname  +
     _T("; User ID=") + user + 
     _T("; PWD=") + pass;try
{
m_pConnection->Open(_bstr_t(LPCTSTR(m_strConnect)), "", "", lOptions);
}
catch (_com_error e)
{
TRACE(_T("Warning: 连接数据库发生异常. 错误信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
TRACE(_T("%s\r\n"), GetLastErrorText());
return FALSE;

catch (...)
{
TRACE(_T("Warning: 连接数据库时发生未知错误:"));
}

解决方案 »

  1.   

    dbsrc->strServer
    dbname->strDbName
    ......
    strConnection = _T("Provider=sqloledb;User ID=sa;Password=;Data Source=192.168.0.7;Initial Catalog=datebasename");g_pConnection->Open((LPCTSTR)strConnection,"","",adConnectUnspecified);数据库属性里最好设置为混合模式登陆。
      

  2.   

    If you want To connect with a SQL Server running on the same computer, you must to specify the keyword (local) in the Data Source like in the following example: 
    strConnect = _T("Provider=sqloledb;Data Source=(local);Initial Catalog=myDatabaseName;"
    "User ID=myUsername;Password=myPassword;");To connect to SQL Server running on a remote computer ( via an IP address): strConnect = _T("Provider=sqloledb;Network Library=DBMSSOCN;Data Source=130.120.110.001,1433;"
    "Initial Catalog=MyDatabaseName;User ID=MyUsername;Password=MyPassword;");
      

  3.   

    如果用ip连接远程数据库需要指定使用的协议,连接的端口,如楼上写的
    如果不用ip,直接用server的名称就可以了
      

  4.   

    要对方的计算机上的SQL Server的sa用户有效才行,很多都是只能使用windows系统帐号,不能用于网络连接的
      

  5.   

    我如何查看这个端口号啊?
    server的名称是不是指启动服务管理器时出现的那个组合框中出现的那几个名称?
    对于SQL Server所在的机器是否要设置ODBC?
      

  6.   

    大家能不能给我讲的详细点,我是新手,请多多关照!
    安装SQL Server是应该注意什么?
    建立好数据库后,是否应该设置ODBC?
    我的电脑是否还应该设置什么?
      

  7.   

    是啊,登陆远程SQL SERVER,用户名一般是sa,还要有相应的password
      

  8.   

    我现在改为如下:
    CString strServer = "192.168.0.16,1433";
    CString strDbName = "student";
    CString strUser = "";
    CString strPass = "";/////////////////////CString strConnect = _T("Provider=SQLOLEDB.1; Network Library=DBMSSOCN; Data Source=") + dbsrc + 
               _T("; Initial Catalog=") + dbname  +
                  _T("; Trusted_Connection=yes") +
         _T("; User ID=") + user + 
         _T("; PWD=") + pass;在本地上没有问题,但是远程还是有问题,提示为用户‘friend’登录失败!
    不知这是为什么,如何解决?请大家帮我在看看?
      

  9.   

    我现在又把字串改为
    CString strConnect = _T("Provider=SQLOLEDB.1; Network Library=DBMSSOCN; Data Source=") + dbsrc + 
      _T("; Initial Catalog=") + dbname  +
      _T("; Integrated Security=SSPI") +
      _T("; Persist Security Info=False") +
      _T("; Trusted_Connection=yes") +
      _T("; User ID=") + user + 
      _T("; PWD=") + pass;提示为无法打开登录‘BHCY’中请求的数据库。登录失败!
      

  10.   

    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=主机名数据库里设置为混合模式登陆。
      

  11.   

    不行,出现错误:SQL Server不存在或者拒绝访问
      

  12.   

    这样改啊
    strConnect = _T("Provider=sqloledb;Network Library=DBMSSOCN;Data Source=192.168.0.16,1433;"
    "Initial Catalog=student;User ID=sa;Password=Your pwd;");
      

  13.   

    现在是提示数据提示为无法打开登录‘student’中请求的数据库。登录失败!
      

  14.   

    server上中有没有student数据库,或者更换可以登陆数据库的用户
      

  15.   

    一个好办法是在odbc数据源里面加入一个文件数据源,然户生成的文件就是个
    connectionString的模板,按照那个东东就能连上了。现在的提示估计是数据库中没有建立登录数据库的用户。
      

  16.   

    远程登陆的数据库一定要是混合模式的身份验证,然后在你的连接字符串里设置SA 和SA的密码,请确定要登陆的数据库有访问权限
      

  17.   

    sa的密码怎么设置?
    我的数据库里的用户一栏里没有没有sa用户啊?
      

  18.   

    终于搞垫了:
    改为如下:
    CString strConnect = _T("Provider=SQLOLEDB.1; Persist Security Info=False; Data Source=") + dbsrc + 
               _T("; Initial Catalog=") + dbname  +
         _T("; User ID=") + user + 
         _T("; password=") + pass;真是让人欲哭无泪啊!把PWD改为password, 再加上Persist Security Info=False一项就解决了。我看这个字窜有好几种写法,不值他们有什么区别:
    比如
    “driver={sql server};server=local;uid=sa;password=123;database=cqyw”
    这个写法就至少在表面上比较好!我也试通了!谁有关于这些选项比较详细解释的资料???