日期:2014-05-18  浏览次数:20485 次

数据库连接失败。。。
我之前没用过数据库,但现在要调试一个程序需要访问数据库,所以我昨天装了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分,请大家还是看在我辛苦贴了这么多图的份上凑过来想想办法,谢谢!

------解决方案--------------------
try
m_bDbConnection = m_ADOConnection.GetConnection(m_pConnection)
catch

如果这句捕获不到,就打开库里的一个表,再捕获那句


telnet 127.0.0.1 1433可以连接,说明数据库没问题了

问题出在语句上

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

------解决方案--------------------
最简单方法,配个odbc看看能不能正常连接,

如果可以的话,再看代码

在看ODBC之前 看sql 外围服务是不是有启动
------解决方案--------------------
运行管理器,先看看能不能连接上