2008-12-02 163 views
3

我們有一個應用程序,我們的客戶通過SQL Native Client ODBC數據源連接到SQL Server 2005數據庫。在程序執行期間,我們遇到了ODBC連接中斷的一些困難。在詢問技術支持人員之後,他說他之前看到過這種類型的錯誤,但他們通過配置客戶端使用命名管道(主要是)而不是TCP/IP來連接來解決問題。在客戶端計算機上配置SQL Native Client ODBC?

因此,我做了一些研究,並找到了在服務器上配置客戶端訪問的位置 - 通過SQL Server配置管理器。但是,似乎沒有辦法在客戶端計算機上配置SQL Native Client ODBC數據源。早期的SQL Server ODBC驅動程序確實允許您將其配置爲使用命名管道或TCP/IP,但SQL Native Client不會。

SQL Native Client數據源是否自動決定使用哪種方法連接到數據庫?有沒有一種方法來配置它?...有沒有辦法找出一個特定的客戶端機器用來連接的方法?

任何幫助,將不勝感激。

--Thanks 邁克C.

回答

1

也許這將讓你去:

4)如果您正在使用SQL Native Client的ODBC/OLEDB提供商({SQL本機客戶端}或SQLNCLI),去到SQL配置管理器,單擊客戶端協議,確保NP和TCP都啓用。右鍵單擊NP的屬性,確保客戶端使用與服務器相同的管道名稱進行連接。

該節點實際上是「SQL本機客戶端配置」,您可以更改優先級並從那裏禁用。

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

+0

我在發佈我的問題之前知道您的信息,但讓另一個人確認它很好。但是,在服務器上配置'SQL Native Client Configuration'仍然缺少一些東西。在我的測試中,它只適用於某些客戶端計算機。我錯過了什麼嗎? – Clinemi 2008-12-08 16:32:02

+0

您正在客戶端計算機上進行此設置更改,對嗎?你提到服務器 - 你需要做的唯一事情就是在表面區域配置中啓用命名管道。 – Sam 2008-12-10 00:33:57

0
  1. 不知道有關命名管道是任何類型的ODBC連接斷裂的答案。如果沒有首先確定問題的根源,我不會指望命名管道。但我可能是錯的。你能看到任何可能解釋這個問題的錯誤嗎?這可能與網絡有關。否則,我認爲應該很容易在客戶端機器上配置它:只需運行cliconfg(SQL Server客戶端網絡實用工具)即可。 確保命名管道協議已啓用,然後導航到別名選項卡,並使用命名管道簡單地爲您的服務器創建別名。

祝你好運。

+0

我對cliconfg的理解是,它不打算與SQL本機客戶端驅動程序一起使用 - 但僅適用於以前版本的SQL Server ODBC驅動程序。話雖如此,經驗告訴我,如果您在cliconfg中設置了不正確的設置,它會打破sql本地客戶端連接。 – Clinemi 2009-01-02 18:36:28

4

注意你可以設置連接字符串中使用的協議,不需要配置機器。我建議不要使用cliconfg來更改機器配置,因爲這會影響機器上運行的所有應用程序。

所以有兩種方法來設置網絡協議。

  1. 使用協議前綴:

    Server=tcp:myserver
    Server=np:myserver

    tcp:前綴意味着使用TCP協議。 np:前綴表示使用命名管道協議。只需將它粘貼到要連接的服務器名稱前即可。

  2. 第二種方式是設置網絡關鍵字在連接字符串中:

    Network=dbmssocn
    Network=dbnmpntw

我寧願協議前綴,因爲我永遠記得這些網絡類型的縮寫。

相關問題