powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Определение наличия сервера в сети
6 сообщений из 6, страница 1 из 1
Определение наличия сервера в сети
    #32056179
Skull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется сервер MSSQL 6.5 работает по IPX/SPX.
Каким образом можно определить запущен он или нет в настоящее время? Имеется в виду не регистрация на сервере, а лишь определение его наличия по ответам сервиса. Нужно послать запрос в сеть и получить от сервера ответ.
Какие методы определения существуют и какие функции нужно применять?
Заранее благодарен.
...
Рейтинг: 0 / 0
Определение наличия сервера в сети
    #32056261
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего попытаться залогиниться и обработать исключение, если таковое не удасться.

SQL-DMO -> ListAvailableSQLServers и проверить наличие имени сервера в этом возвращаемом списке.

В MSSQL7 есть утилита командной строки odbcping.exe, с помощью которой можно проверить, доступен сервер или нет. Не помню, есть ли аналогичная утилита в 6.5.
...
Рейтинг: 0 / 0
Определение наличия сервера в сети
    #32056277
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В WIN32 API смотрите NetServerEnum
параметр SV_TYPE_SQLSERVER
...
Рейтинг: 0 / 0
Определение наличия сервера в сети
    #32056302
Фотография RatTail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ответ от LYNX_DBA (был тута-ки):
Можно еще вот такую процедульку использовать (базируется на вызове SQLDMO из T-SQL в sql7 работает в 2000 не проверял.
Если сервер присутствует - ответ получается быстро - если нет - то таймаут. Тут уж ничего не попишешь).

CREATE PROCEDURE [sp_storage_test_connection]
@srv_name varchar(255),
@login varchar(255),
@password varchar(255),
@ret varchar(255) OUT

AS
BEGIN
declare @object int
declare @hr int

select @ret = 'False'
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, @srv_name, @login, @password
EXEC @hr = sp_OAMethod @object, 'VerifyConnection', @ret OUT
EXEC @hr = sp_OADestroy @object

END
------------------------------------
>SQL-DMO -> ListAvailableSQLServers
Это совсем не то, что надо
------------------------------------
Правда, LYNX_DBA странно выразился насчет таймаута.
Его вполне можно ограничить (в смысле, время ожидания ответа)
...
Рейтинг: 0 / 0
Определение наличия сервера в сети
    #32056306
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>SQL-DMO -> ListAvailableSQLServers
Это совсем не то, что надо

Конечно, не то. Молоток надо повернуть ручкой к себе.
...
Рейтинг: 0 / 0
Определение наличия сервера в сети
    #32056318
Фотография RatTail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имел в виду добавить строчку:
exec @hr = sp_OASetProperty @object, 'LoginTimeout', '5'
Даём на "всё" - 5 секунд

2Dankov
Чес слово, не понял. Мож я не так просёк всё?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Определение наличия сервера в сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]