Java-приложение не может подключиться к серверу sql [duplicate]

Объявлено, но не определено переменная или функция.

Типичным объявлением переменной является

extern int x;

. Поскольку это только объявление, требуется одно определение. Соответствующим определением будет:

int x;

Например, следующее генерирует ошибку:

extern int x;
int main()
{
    x = 0;
}
//int x; // uncomment this line for successful definition

Аналогичные замечания относятся к функциям. Объявление функции без ее определения приводит к ошибке:

void foo(); // declaration only
int main()
{
   foo();
}
//void foo() {} //uncomment this line for successful definition

Будьте осторожны, чтобы выполняемая вами функция точно соответствовала той, которую вы объявили. Например, у вас могут быть несогласованные cv-квалификаторы:

void foo(int& x);
int main()
{
   int x;
   foo(x);
}
void foo(const int& x) {} //different function, doesn't provide a definition
                          //for void foo(int& x)

Другие примеры несоответствий включают

  • Функция / переменная, объявленная в одном пространстве имен, определенное в другом.
  • Функция / переменная, объявленная как член класса, определяемая как глобальная (или наоборот).
  • Тип возвращаемого значения функции, номер и типы параметров и соглашение о вызове не совсем точно согласуются.

Сообщение об ошибке из компилятора часто дает вам полное объявление переменной или функции, которая была объявлена, но не определена. Сравните его с определением, которое вы указали. Убедитесь, что каждая деталь соответствует.

58
задан a_horse_with_no_name 17 September 2013 в 10:38
поделиться

5 ответов

Перейти в Пуск-> Все программы-> Microsoft SQL Server 2012-> Инструмент настройки -> Нажмите «Диспетчер конфигурации SQL Server».

Если вы видите, что состояние браузера SQL Server / SQL Server «остановлено». Щелкните правой кнопкой мыши на SQL Server / SQL Server Browser и нажмите «Пуск». В некоторых случаях выше состояние может остановиться, если назначено соединение TCP с портом 1433.

4
ответ дан Abdur Rahman 28 August 2018 в 03:40
поделиться

Ошибка объяснительна:

  • Проверьте, действительно ли ваш SQL-сервер запущен и работает
  • Проверьте правильность имени, имени пользователя и пароля сервера SQL
  • Проверьте, нет ли правила брандмауэра, блокирующего TCP-соединение с портом 1433
  • Проверьте, что хост действительно доступен

Хорошая проверка, которую я часто использую, заключается в использовании telnet, например при запуске командной строки Windows:

telnet 127.0.0.1 1433

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

12
ответ дан gerrytan 28 August 2018 в 03:40
поделиться

Как говорится в ошибке, вам нужно убедиться, что ваш SQL-сервер запущен и прослушивает порт 1433. Если сервер работает, вам нужно проверить, нет ли правила брандмауэра, отклоняющего соединение на порту 1433.

Вот команды, которые могут быть полезны для устранения неполадок:

  1. Используйте netstat -a, чтобы проверить, прослушивает ли сервер sql на нужном порту
  2. . Как сказал Джерритан в ответ вы можете попытаться выполнить telnet на хосте и порту
1
ответ дан Juned Ahsan 28 August 2018 в 03:40
поделиться

Простое решение

Чтобы начать -> Все программы -> Microsoft SQL Server 2012-> Инструмент настройки -> Щелкните Диспетчер конфигурации SQL Server -> Разверните конфигурацию сети SQL Server-> Протокол -> Включить TCP / IP Правый блок

Двойной щелчок по TCP / IP и переход к IP-адресам Нажмите и поместите порт 1433 под порт TCP.

enter image description here [/g0]

83
ответ дан Md. Naushad Alam 28 August 2018 в 03:40
поделиться
  1. Откройте диспетчер конфигурации SQL Server, а затем разверните конфигурацию сети SQL Server 2012.
  2. Нажмите «Протоколы для имени экземпляра», а затем убедитесь, что TCP / IP включен на правой панели и дважды щелкните TCP / IP.
  3. На вкладке Протокол обратите внимание на значение элемента «Слушать все».
  4. Перейдите на вкладку «IP-адреса»: если значение «Прослушать все» да, Номер IP-порта для этого экземпляра SQL Server 2012 - это значение элемента TCP Dynamic Ports под IPAll. Если для параметра «Прослушать все» нет значения, номер порта TCP / IP для этого экземпляра SQL Server 2012 является значением элемента TCP Dynamic Ports для определенного IP-адреса.
  5. Убедитесь, что TCP-порт 1433.
  6. Нажмите «ОК».

Если у вас есть еще вопросы, пожалуйста, дайте мне знать.

Спасибо.

150
ответ дан prince 28 August 2018 в 03:40
поделиться
Другие вопросы по тегам:

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