我们有一个应用程序,我们的客户端通过SQL Native Client ODBC数据源连接到SQL Server 2005数据库。在程序执行期间,ODBC连接被切断了,我们遇到了一些困难。在询问技术支持人员之后,他说他之前看到过这种类型的错误,但他们通过配置客户端使用命名管道(主要是)而不是TCP / IP进行连接来解决问题。
所以我做了一些研究,发现在服务器上配置客户端访问的位置 - 通过SQL Server配置管理器。但是,似乎没有办法在客户端计算机本身上配置SQL Native Client ODBC数据源。较旧的SQL Server ODBC驱动程序允许您将其配置为使用命名管道或TCP / IP,但SQL Native Client不允许。
SQL Native Client数据源是否自动决定使用哪种方法连接数据库?有没有办法配置它?...有没有办法找出特定客户端机器用于连接的方法?
任何帮助都将不胜感激。
- 感谢 迈克C.
答案 0 :(得分:5)
注意您可以设置连接字符串中使用的协议,不需要配置机器。我建议不要使用cliconfg更改机器配置,因为这会影响机器上运行的所有应用程序。
因此,有两种方法可以设置网络协议。
使用协议前缀:
Server=tcp:myserver
Server=np:myserver
tcp:
前缀表示使用tcp协议。 np:
前缀表示使用命名管道协议。只需将其粘贴在您要连接的服务器名称前面即可。
第二种方法是在连接字符串中设置Network关键字:
Network=dbmssocn
Network=dbnmpntw
我更喜欢协议前缀,因为我永远不会记住这些网络类型的缩写。
答案 1 :(得分:1)
也许这会让你前进:
4)如果您使用的是SQL Native Client ODBC / OLEDB提供程序({SQL Native Client}或SQLNCLI),请转到SQL Configuration Manager,单击客户端协议,确保已启用NP和TCP。右键单击NP的属性,确保客户端使用与服务器相同的管道名称进行连接。
该节点实际上是“SQL Native Client Configuration”,您可以更改优先级并从那里禁用。
答案 2 :(得分:0)
不确定命名管道是否是ODBC连接中断的任何答案。在没有首先确定问题的根源的情况下,我不会指望命名管道。我可能错了。你能看到任何可以解释这个问题的错误吗?这可能与网络有关。
否则,我认为在客户端计算机上配置它应该很容易:只需运行cliconfg(SQL Server客户端网络实用程序)。 在“常规”选项卡中,确保已启用“命名管道”协议,然后导航到“别名”选项卡,只需使用“命名管道”为服务器创建别名。