Как я могу создать действительную строку подключения, используя протокол общей памяти для подключения именованного экземпляра сервера SQL? - PullRequest
4 голосов
/ 15 февраля 2010

Как создать действительную строку подключения, используя протокол общей памяти для подключения именованного экземпляра сервера SQL, пока браузер сервера SQL отключен?

Ответы [ 2 ]

8 голосов
/ 06 августа 2012

Формат строки подключения, который я использую для создания строки подключения в приложении C ++ с использованием ADO для доступа к SQL Server, выглядит следующим образом.

"Provider=MSDASQL;DRIVER={SQL Server};SERVER=lpc:(local);DATABASE=%s;UID=; Password=;"

Значение lpc: in SERVER = заставляет соединение с сервером использовать протокол общей памяти. % S используется для помещения определенного имени базы данных в фактическую управляющую строку, сгенерированную из этого формата.

См. Строка SQL Connect

3 голосов
/ 15 февраля 2010

Если вы используете [имя_сервера] [имя экземпляра], (локально) [имя экземпляра] или LOCALHOST [имя экземпляра] с локального компьютера, он будет использовать разделяемую память, пока совместно используемая память включена (руководствуясь этим в Интерфейс отличается в 2005 и 2008 годах, поэтому я не знаю, для какой версии мне следует помогать). В отличие от SQLCMD и т. Д., Нет способа сообщить провайдеру, что вы хотите использовать только разделяемую память - если по какой-то причине он не может использовать разделяемую память, по умолчанию будет использоваться другой протокол (названный трубы или TCP / IP). Вы можете проверить, какие протоколы используются, посмотрев на sys.dm_exec_connections:

SELECT session_id, net_transport 
  FROM sys.dm_exec_connections;

Я не проверял это с отключенным браузером SQL, но думаю, что это не должно иметь никакого влияния. FWIW, я всегда использую TCP / IP, но я почти всегда избегаю иметь приложения на локальном компьютере, которые должны подключаться к SQL Server - это то, для чего предназначены серверы приложений с более низкой спецификацией, а не занимают память и ЦП на сервере базы данных (и, следовательно, вдали от SQL Server).

...