在下刚开始接触SQL SERVER,按照网上找的教程,在一台安装了WINDOWS SERVER 2003的服务器上安装了一个SQL SERVER 2005 Express。安装过程正常,安装完毕后还在本地电脑上装了一个SQL Server Management Studio Express以便于操作。数据库配置具体可参看这篇帖子。Management Studio操作一切正常,还进入数据库安装了数据等。
可当我使用代码进行连接时,却不对了,程序一连就卡死。以下是我测试用的简单连接代码:
#import "c:\program files\common files\system\ado\msado15.dll" rename_namespace("adodb") rename("EOF","adoEOF") adodb::_CommandPtr m_DBCommand;
adodb::_RecordsetPtr m_DBRecordset;
adodb::_ConnectionPtr m_DBConnection; AfxOleInit(); try
{
m_DBConnection.CreateInstance("ADODB.Connection"); m_DBConnection->Open("Provider=sqloledb;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=QPServerInfoDB;Data Source=192.168.1.79,3353", "", "", -1);
}
catch (...)
{
MessageBox("ado init failed");
OnCancel();
return FALSE;
}每当程序执行到Open这一步时,便陷入卡死,不再响应,但也无报错。
请教各位达人,我的代码有什么错误吗?有的话错在哪里,为啥管理软件远程连接正常,使用代码就不行了呢?

解决方案 »

  1.   

    代码我看不懂,但是你这种情况通常来说其实就是验证不通过,连不上SQLServer,
      

  2.   

    是不是MSSQL的端口没开?
    我用的是2008R2,需要打开2个端口TCP-1433、UDP-1434。
      

  3.   

    你直接在IDE中用数据添加的方式添加一个连接看看.然后看一下你的连接字符串.你的端口有改过?变成3353了?
      

  4.   


    感觉上不是很像……
    一方面可以看这个帖子,里面我都是打开了的:
    http://bbs.csdn.net/topics/390399462
    另一方面我使用连接IP和端口的方式也能在VS2005中测试连接成功,可就是代码不行。
    怀疑就是这句代码有问题,可不知道问题在哪……
    m_DBConnection->Open("Provider=sqloledb.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=QPServerInfoDB;Data Source=192.168.1.79,3533", "", "", -1);
      

  5.   

    改了端口你要先看看能不能ping通
      

  6.   

    可PING通服务器,而且服务器的防火墙都关了,可惜还是代码无法连通。