在客户端计算机上配置SQL Native Client ODBC?

时间:2008-12-02 18:16:04

标签: sql-server odbc named-pipes odbc-sql-server-driver

我们有一个应用程序,我们的客户端通过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.

3 个答案:

答案 0 :(得分:5)

注意您可以设置连接字符串中使用的协议,不需要配置机器。我建议不要使用cliconfg更改机器配置,因为这会影响机器上运行的所有应用程序。

因此,有两种方法可以设置网络协议。

  1. 使用协议前缀:

    Server=tcp:myserver
    Server=np:myserver

    tcp:前缀表示使用tcp协议。 np:前缀表示使用命名管道协议。只需将其粘贴在您要连接的服务器名称前面即可。

  2. 第二种方法是在连接字符串中设置Network关键字:

    Network=dbmssocn
    Network=dbnmpntw

  3. 我更喜欢协议前缀,因为我永远不会记住这些网络类型的缩写。

答案 1 :(得分:1)

也许这会让你前进:

4)如果您使用的是SQL Native Client ODBC / OLEDB提供程序({SQL Native Client}或SQLNCLI),请转到SQL Configuration Manager,单击客户端协议,确保已启用NP和TCP。右键单击NP的属性,确保客户端使用与服务器相同的管道名称进行连接。

该节点实际上是“SQL Native Client Configuration”,您可以更改优先级并从那里禁用。

http://blogs.msdn.com/sql_protocols/archive/2007/03/31/named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server.aspx

答案 2 :(得分:0)

  1. 不确定命名管道是否是ODBC连接中断的任何答案。在没有首先确定问题的根源的情况下,我不会指望命名管道。我可能错了。你能看到任何可以解释这个问题的错误吗?这可能与网络有关。

  2. 否则,我认为在客户端计算机上配置它应该很容易:只需运行cliconfg(SQL Server客户端网络实用程序)。 在“常规”选项卡中,确保已启用“命名管道”协议,然后导航到“别名”选项卡,只需使用“命名管道”为服务器创建别名。

  3. 祝你好运。