Программно определить доступность сервера MS SQL
☑
0
bvb
27.01.15
✎
11:23
У меня есть обработка (давно работает) получающая программно запрос с сервера БД SQL. Условие формирования запроса наличие pingа сервера.
ServicesSet = ПолучитьCOMОбъект("winmgmts:\root\cimv2");
Items = ServicesSet.ExecQuery ("Select * From Win32_PingStatus where Address = '"+IP+"'");
Сейчас пинг закрыли (но сервер SQL) доступен.
Как мне без пинга БЫСТРО программно определить доступность сервера.
ЗЫ Попытку не предлагать
1
Fragster
гуру
27.01.15
✎
11:30
попытку-то почему не предлагать? самое то. И насколько "быстро" для тебя действительно "быстро"? у меня так достаточно быстро:
Попытка
Если
мСоединение = Неопределено ИЛИ
мСоединение.State = мМагияСКЛ.adStateClosed
Тогда
мСоединение = Неопределено;
Connection = Новый ComОбъект("ADODB.Connection");
СтрокаПодключения = "Driver={SQL Server}; Server="+Сервер+"; DataBase="+База+"; UID="+Пользователь+"; PWD="+Пароль+";";
СтрокаПодключения = "Provider=SQLOLEDB.1;Password="+Пароль+";Persist Security Info=True;User ID="+Пользователь+";Initial Catalog="+База+";Data Source="+Сервер+"";
Connection.ConnectionString = СтрокаПодключения;
Connection.CursorLocation = мМагияСКЛ.adUseClient;
Connection.Open();
мСоединение = Connection;
Иначе
Команда = СоздатьКомандуАДО(мСоединение, "SELECT 1");
ВыполнитьКомандуАДО(Команда);
КонецЕсли;
Исключение
мСоединение = Неопределено;
ВызватьИсключение "Не получилось соединиться с обменной базой!";
КонецПопытки;
2
bvb
27.01.15
✎
11:40
что есть мМагияСКЛ ?
3
ДенисЧ
27.01.15
✎
11:40
(2) ты не поверишь....
4
bvb
27.01.15
✎
11:50
(3) Ну нашел...
Структура с кодами
Просто яндекс в результате поиска не вернул
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн