我之前没用过数据库,但现在要调试一个程序需要访问数据库,所以我昨天装了SQL server 2008,按照安装手册一步步下来都很顺利,今天调试程序,可就是怎么也连接不了数据库,找人帮我远程了下,也看不出来哪有问题,下面我把我的配置都贴出来请大家帮忙给看看。这是服务器的配置这是本机的IP地址这是数据库服务器的IP地址TCP端口1433这是客户端的配置
这个管道我是复制了服务器中的,本来是sql\qurel,但是改不改结果都是一样的,现在设的是\\.\pipe\MSSQL$MSSQL2008\sql\query
我在C:\Windows\System32\drivers\etc找到hosts,也做了这项添加接下来是我cmd的结果,ping 127.0.0.1是通的ping myserver 就找不到,直接用服务器名称“WIN-AUBP50S9JTS\MSSQL2008”或“MSSQL2008”也一样telnet 127.0.0.1 1433时,左上角光标闪烁
http://my.csdn.net/uploads/201205/24/1337839828_9999.png
下面就是我的断点程序代码和调试遇到的问题
代码:void CSiSectionParse::SetPara(CString outputPath, CString bakputPath, CString server,  CString database, CString uid, CString pwd){
m_strOutputPath = outputPath;
m_strBakputPath = bakputPath;
m_strServer = server;
m_strDatabase = database;
m_strUID = uid; 
m_strPWD = pwd;

m_ADOConnection.SetConnectString(m_strServer, m_strDatabase, m_strUID, m_strPWD);
m_bDbConnection = m_ADOConnection.GetConnection(m_pConnection); #ifdef _DEBUG
if(m_bDbConnection)
std::cout << endl << "数据库连接成功" << endl;
else
std::cout << endl << "数据库连接失败" << endl;
#endif

{
string minfo;
if(m_bDbConnection)
minfo="数据库连接成功" ;
else
minfo="数据库连接失败"; LogString2(minfo);
}
return;
}
调试的配置文件:这是调试:
很抱歉我在这个区没有积分,只能最多给20分,请大家还是看在我辛苦贴了这么多图的份上凑过来想想办法,谢谢!

解决方案 »

  1.   

    回复贴不了图啊!
    我来给大家文字补充一下缺失的部分:
    1.本机的IP地址
      IP地址:172.18.130.106
      IP动态端口:0
      IP端口:
      活动:是
      已启用:是
    2.数据库服务器的IP地址
      IP地址:127.0.0.1
      IP动态端口:
      IP端口:1433(没配1433的时候也不行,配了也还是不行)
      活动:是
      已启用:是
    3.TCP端口
      TCP动态端口:0(没配0的时候也不行,配了也不行)
      TCP端口:1433
    4.客户端协议的TCP/IP属性
      保持活动状态:30000
      保持活动状态的间隔:1000
      默认端口:1433
      已启用:是
    5.服务器和客户端的General都是:\\.\pipe\MSSQL$MSSQL2008\sql\query
    差不多就这些了吧,大家哪里还需要知道就问我
      

  2.   

    try
      m_bDbConnection = m_ADOConnection.GetConnection(m_pConnection)
    catch如果这句捕获不到,就打开库里的一个表,再捕获那句
    telnet 127.0.0.1 1433可以连接,说明数据库没问题了问题出在语句上
      

  3.   

    一层一层的找了一个错误,没法复制,我用手敲下来了:
    ((*(IUnknown*)(&(*(IDispatch*)(&(*(_ADO*)(&(*(Connection15*)(&*((m_pConnection).m_pInterface)))))))))).vfptr    CXX0030:错误:无法计算表达式的值什么意思,是说我的m_bDbConnection无法计算,直接就给等于false了吗?
      

  4.   

    同学,SQL Server Management Studio中,能否访问这个实例?
    另外的,如果是本机的程序访问本机的数据库,那么先尝试把Share Memory协议打开,然后连接字符串就写一个.
    其次,数据库的实例是什么,连接字符串是否写了实例名?
      

  5.   


    谢谢你!SQL Server Management Studio中,我是可以连接这个实例的,但我真的没接触过数据库,你这样讲“连接字符串”我都不知是什么意思,要不你要是有空的话帮我远程看一下行吗?我的QQ352697982
      

  6.   

    本地连接需要开启Shared memory
      

  7.   

    最简单方法,配个odbc看看能不能正常连接,如果可以的话,再看代码在看ODBC之前 看sql 外围服务是不是有启动
      

  8.   

    好像不是数据库的问题,配置什么的都是没错的了,现在在研究是不是本机ADO组件缺少的问题,反正刚开始装过来的时候老报错说找不到“msado15.dll”,然后我们头儿从他电脑上拷下来给我,而现在我们觉得是不是因为他的机器是64位而我的是32位的问题,太纠结了!