Конфигурирование собственного клиента SQL ODBC на клиентском компьютере? - PullRequest
3 голосов
/ 02 декабря 2008

У нас есть приложение, в котором наши клиенты подключаются к базе данных SQL Server 2005 - через источник данных ODBC собственного клиента SQL. У нас возникают некоторые трудности с разрывом соединения ODBC во время выполнения программы. После допроса сотрудника службы технической поддержки он сказал, что раньше сталкивался с подобным типом ошибки, но они исправили проблему, настроив клиенты для подключения с использованием именованных каналов (прежде всего), а не TCP / IP.

Итак, я провел некоторое исследование и нашел, где настроить клиентский доступ на сервере - через диспетчер конфигурации SQL Server. Однако, по-видимому, нет способа настроить источник данных ODBC для собственного клиента SQL на самом клиентском компьютере. Более старый драйвер ODBC для SQL Server позволял вам настроить его на использование именованных каналов или TCP / IP, но собственный клиент SQL этого не делает.

Определяет ли источник данных собственного клиента SQL автоматически, какой метод использовать для подключения к базе данных? Есть ли способ настроить его? ... и есть ли способ узнать, какой метод использует конкретный клиентский компьютер для подключения?

Любая помощь будет оценена.

- Спасибо Майк С.

Ответы [ 3 ]

5 голосов
/ 11 августа 2011

Обратите внимание, что вы можете установить протокол, используемый в строке подключения, нет необходимости настраивать аппарат. Я бы рекомендовал НЕ изменять конфигурацию машины с помощью cliconfg, поскольку это влияет на все приложения, работающие на машине.

Таким образом, есть 2 способа установить сетевой протокол.

  1. Использовать префикс протокола:

    Server=tcp:myserver
    Server=np:myserver

    Префикс

    tcp: означает использование протокола tcp. Префикс np: означает использование протокола именованных каналов. Просто вставьте это перед именем сервера, к которому вы подключаетесь.

  2. Вторым способом является установка ключевого слова Network в строке подключения:

    Network=dbmssocn
    Network=dbnmpntw

Я предпочитаю префикс протокола, потому что никогда не могу вспомнить эти сокращения типа сети.

1 голос
/ 02 декабря 2008

Может быть, это поможет вам:

4) Если вы используете поставщик ODBC / OLEDB собственного клиента SQL ({собственный клиент 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 голосов
/ 01 января 2009
  1. Не уверен, что именованные каналы являются каким-либо ответом на разрыв соединения ODBC. Без предварительного определения источника проблемы я бы не стал рассчитывать на именованные каналы. Я могу ошибаться, хотя. Вы видите какую-либо ошибку, которая может объяснить эту проблему? Это может быть связано с сетью.

  2. В противном случае, я думаю, что это должно быть довольно легко настроить на клиентском компьютере: просто запустите cliconfg (SQL Server Client Network Utility). на вкладке General убедитесь, что протокол Named Pipes включен, затем перейдите на вкладку Alias ​​и просто создайте псевдоним для вашего сервера, используя Named Pipes.

Удачи.

...