程序连接sqlserver2008必须加端口

yanglong2008 2013-01-17 09:51:49
服务器:win server2008
数据库 sqlserver2008、sqlserver2008r2
问题:以前开发的老程序是vc++的,(包括vfp开发的老程序也存在该问题)连接串如下
cnstr.Format("Provider=sqloledb;Password=%s;User ID=%s;Initial Catalog=testjl;Data Source=%s",password1,user1,ipdz1);
ipdz1 这个变量保存的是ip地址,如果连接win2003+sql2000的机器,这样写可以执行,但是如果连接win2008+sql2008的机器时,必须输入端口(ip,1433)才可能会访问数据库(本人有两台机器平台一样,笔记本可以不用输入端口即可访问数据库,台式机怎么改都不可以,在别的机器里均无法执行)
sql2008的配置管理全部配置正确,包括端口的开放,固定端口与动态端口都已设置好。
也排除了win2008的配置问题,否则我的笔记本也无法访问
此前出现过机器无法远程桌面win2008服务器的事情,笔记本修改的注册表,台式机做的远程桌面升级
请高手给予分析问题出在何处。谢谢
...全文
1364 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanglong2008 2013-02-05
  • 打赏
  • 举报
回复
谢谢大家,问题已经解决了,十分蹊跷 再一次偶然给别人写类库的时候用到了转义字符,突发奇想,格式 ip地址\\,1433 结果程序顺利连接上了数据库,而且可以访问了,同样的方式在vs2010+win2008server+sqlserver2008也可以使用,只不过vs2010可直接采用 ip,1433这样的格式即可访问。 一开始就已经排除了sqlserver配置的事情, 现在我只能把问题归咎于win2008server的身上了,在一开始测试的时候,我就将win2008server的防火墙的出入站的规则设置好了,包括最终将防火墙关掉,所有能测试的方法我都测试了,均不可以。现在问题虽然解决了,但是如何能够不去这么写连接串,而是用以前老方式写,那只能说win2008server版本的事情了,oem到底和正版的操作系统有什么差别,有待大家探索了
  • 打赏
  • 举报
回复
在系统中看一下tcp 1433是否开启 在命令行输入netstat -na查看一下
szm341 2013-01-17
  • 打赏
  • 举报
回复
引用 2 楼 kingtiy 的回复:
在客户端-sqlserver配置管理器-sql native client 10.0配置-客户端协议-TCP/IP-默认端口:1433
+1应该是客户端设置问题
kingtiy 2013-01-17
  • 打赏
  • 举报
回复
在客户端-sqlserver配置管理器-sql native client 10.0配置-客户端协议-TCP/IP-默认端口:1433
gongjian0628 2013-01-17
  • 打赏
  • 举报
回复
1.建议先看一下本地服务器配置 将1433端口打开
KevinLiu 2013-01-17
  • 打赏
  • 举报
回复
不能访问报什么错误?不指定端口有可能走的协议不是TCP/IP,所以出错。但是指定端口以后就一定走TCP/IP了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧