Sql 连接问题...高分相送...(200分)

  • 主题发起人 主题发起人 yeszhang
  • 开始时间 开始时间
Y

yeszhang

Unregistered / Unconfirmed
GUEST, unregistred user!
我们公司有个产品是使用Sql Server的,很普通的结构,就是一台数据库服务器
N个客户端,N<5.

最近经常有客户抱怨说某客户端连接不上Sql Server
我们技术人员过去一看的确是连接不上,然后尝试用Windows自带的ODBC建立连接

使用在ODBC连接时选择TCP/IP连接有问题,使用Named Pipes尝试后能连接,这样测试连接成功后
我们的软件也能正常连接上SQL Server了。
可这样的情况有些客户是Named Pipes连接不上,TCP/IP却能连接
不知道是否有什么代码可以在程序尝试TCP/IP连接不上后在尝试Named Pipes连接?

当然连接不上的偶尔也是因为客户的网线没插好,或者网卡被莫明其妙给禁用了,那么
是不是也有什么代码能检测到网卡状态和网络连接状态呢?

经常发生这样的情况确实很浪费人力资源。

请问各位有没碰到此类问题,能否提供个好的解决方法?
 
首先要升级ADO到2.8.
如果使用Named Pipes方式,最好服务器用域用户方式.
服务器的网络库和协议要和客户端的网络库和协议匹配.
 
链不通时 ping一下服务器 看是不是网络问题,或重转tcp/ip协议一下

换ADO链接
 
ADO升级?XP SP2的ADO版本就是2.8了吧。

在TCP/IP连接不上的情况下,而Named Pipes能连接上,我们有什么理由一定要选择TCP/IP
连接呢?

现在的问题是要解决问题,协议是否匹配我们第一次安装的时候肯定会注意到这个问题
但不是所有客户都是只使用我们的软件。有冲突时难道我们就非得去改变人家的协议 ?
让他们连不上?呵呵,那不打架?
要适应,适应复杂的网络状况,呵呵。或者不能适应,最好能有些代码能测试能知道是
什么原因导致这个问题,能让这个客户自己运行一个测试程序就行,把结果告诉我们
我现在问的就是是否有这方面的代码。

请继续
 
TO zylsoft:
兄弟,现在不是说一定要让我们到现场去解决问题。

这么复杂的东西我们要代码化,做成一个程序,让客户去运行,然后把网络状况,和大致的连接不上的原因传给我们。

那么复杂的操作不是所有客户都能操作的。
 
敬请看先看我提问的内容,而不是看标题就好了
 
你的Sql Server是什么版本的?如果是MS Sql Server 2000,在没有打SP3的情况下是会出现你所说情况的。当时我们遇到的情况是有时TCP/IP可以,有时Named Pipes可以,有时两者都不行,有时都可以。装上SP3后就没有这种怪现象了。
 
MS Sql Server 2000/

Sp3我打怕了,有两次大上Sp3后说什么服务器无法正确启动。

搞得重新安装sql也没用,只能重新装系统。
不会我们公司的人安装个升级文件都不会装吧,呵呵,估计Sp3 安装的时候对系统环境比较苛刻。

我们大部分用的是Sql 2000个人版。
 
这么说你的问题是装过SP3以后仍然出现的?
 
没有没有,是因为打SP3出问题后,就所有的客户不再敢打SP3了,都没打Sp3。

我们说的是产品不是一个项目,这个产品有几十个公司在使用。所有公司都装Sql server 2000个人版。不打Sp3
 
估计我的内容描述的不准确,那分解为两个问题吧:

1、有什么代码能返回网络连接状况,比如:如果网卡被禁用,返回网卡被禁用,网线没插好就返回网线没插好。

2、有什么方法能让sql首先尝试TCP/IP方式连接服务器,尝试20秒,如果不行,再尝试使用Named Pipes 连接,再尝试20秒。如果不行再返回错误信息。
 
我也遇到过这样的问题,打了SP4补丁还是不行,现在的解决办法是在服务器上新建一个系统用户,管理员权限,然后所有客户端机器的操作系统登陆用户全部都改成这个用户,这样就是所有的客户端使用一样的用户名,一样的密码,怎么感觉都不是那么回事,可就是解决不了,
 
Named Pipes连接方式需要可信连接,这个都知道吧.
 
奇怪的问题,我的电脑上建立Sql连接的时候
在服务器名中写自己的机器名无法连接,可是写(local)连接就很正常
请问原因。
 
例外如果写一个Named Pipes 的连接串?
 
用QQ远程桌面。省力
 
接受答案了.
 
后退
顶部