Конфигурирование собственного клиента SQL ODBC на клиентском компьютере?

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

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

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

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

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

3 ответа

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

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

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

    Server=tcp:myserver
    Server=np:myserver

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

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

    Network=dbmssocn
    Network=dbnmpntw

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

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

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

  1. Не уверен, что именованные каналы являются каким-либо ответом на разрыв соединения ODBC. Без предварительного определения источника проблемы я бы не стал рассчитывать на именованные каналы. Я могу быть неправ, хотя. Вы видите какую-либо ошибку, которая может объяснить эту проблему? Это может быть связано с сетью.

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

Удачи.

Другие вопросы по тегам