Не может соединиться с localhost, но может с именем компьютера в SQL Server 2008

В C++ существует только тонкое различие. Это - пережиток от C, в котором это имеет значение.

стандарт языка C ( C89 В§3.1.2.3, C99 В§6.2.3, и C11 В§6.2.3) передает под мандат отдельные пространства имен для различных категорий идентификаторов, включая [1 128] идентификаторы тега (для struct / union / enum) и обычные идентификаторы (для typedef и другие идентификаторы).

, Если Вы просто сказали:

struct Foo { ... };
Foo x;

Вы получили бы ошибку компилятора, потому что Foo только определяется в пространстве имен тега.

необходимо было бы объявить это как:

struct Foo x;

Любое время Вы хотите обратиться к Foo, необходимо было бы всегда называть его struct Foo. Это становится раздражающим быстрый, таким образом, можно добавить typedef:

struct Foo { ... };
typedef struct Foo Foo;

Теперь struct Foo (в пространстве имен тега) и просто Foo (в обычном пространстве имен идентификатора) и обратитесь к тому же самому, и можно свободно объявить объекты типа Foo без struct ключевое слово.

конструкция:

typedef struct Foo { ... } Foo;

просто сокращение для объявления и typedef.

Наконец,

typedef struct { ... } Foo;

объявляет анонимную структуру и создает typedef для него. Таким образом, с этой конструкцией, это не имеет имени в пространстве имен тега, только имени в пространстве имен определения типа. Это означает, что также не может быть вперед - объявлено. , Если Вы хотите сделать предописание, необходимо дать ему имя в пространстве имен .

тега

В C++, весь struct / union / enum / class действие объявлений как, они неявно typedef 'редактор, пока имя не скрыто другим объявлением с тем же именем. См. ответ Michael Burr для полного изложения.

43
задан 27 August 2009 в 09:33
поделиться

3 ответа

Вероятно, вам нужно настроить Sql Server, чтобы разрешить «удаленные» подключения:

  1. Перейдите в Пуск> Все программы> Microsoft Sql Server 2008> Инструменты конфигурации> Диспетчер конфигурации сервера Sql
  2. Когда диспетчер конфигурации загрузился, разверните узел «Сетевая конфигурация SQL Server» в дереве слева
  3. Выберите в дереве экземпляр Sql Server, к которому вы пытаетесь подключиться
  4. Все три из «Совместно используемой памяти» , «Именованные каналы» и «TCP / IP» должны отображаться как «Включено» в списке справа. Для тех, кто этого не делает, дважды щелкните каждый из них по очереди и измените Отключено на Включено в появившемся окне.
  5. Щелкните «Службы Sql Server» в древовидной структуре.
  6. Выберите «SQL Server (Имя экземпляра)»
18
ответ дан 26 November 2019 в 22:40
поделиться

Вы также можете попробовать: . \ Sql_server_instance_name

.\SQLExpress
4
ответ дан 26 November 2019 в 22:40
поделиться

Используйте localhost \ sql_server_instance_name

Например, localhost \ sqlexpress

Используйте . вместо 127.0.0.1

. \ sqlexpress

8
ответ дан 26 November 2019 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: