VC++连接SQL Server2005 数据库

以前一直使用sql server 200数据库, 这次琢磨着用个高级点的吧,sql server 2005, 麻烦也就一起来了,还真是高级,头都晕了.

 

以前使用sql server 2000的时候, 当时用于连接数据库的代码如下:

 

strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx;DATABASE=mydatabase;UID=name;PWD=pwd");

m_pConnection.CreateInstance(__uuidof(Connection));
_bstr_t strConnect = strConnection;

try

{

HRESULT hr = m_pConnection->Open(strConnect,(_bstr_t)m_sUser,(_bstr_t m_sPwd,NULL);

}

catch(...)

{

       //MsgBox;

}

 

这段代码在连接sql server 2000数据库的时候,是没有问题的,一切正常.

好,现在来使用sql server 2005数据库,每次都提示错误: SQL Server does not exist or access denied ,  ErrorCodes = 80004005

奇怪了,怎么会有这种提示呢?真是百思不得其解,然后不断的baidu,goole,原来SQL Server 2005的配置要比SQL Server 2000麻烦多了,通过配置SQL Server 2005 ,终于解决了问题 :

 

1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:

 “配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动数据库服务。

 

2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:

  打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。

 

3.修改SQL Server sa的密码:

  在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。

 

4.设置SQL Server 的端口号

     在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成1433

 

5.确保开启SQL Server服务

     在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),

 

6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号.

   strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");

 

7.完成.


共勉之!

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值