Лабораторная работа 3.2
Работа с объектом SQLDMO.SQLServer, проверка состояния сервера SQL Server из скрипта VBScript, запуск сервера SQL Server из скрипта VBScript
Задание:
Напишите скрипт SQL-DMO, который бы:
1) проверял состояние указанного вами сервера SQL Server;
2) если он остановлен, то автоматически бы его запускал;
3) если он приостановлен (состояние Pause), то переводил бы сервер в режим Running.
Проверьте работу вашего скрипта, запустив его в разных состояниях SQL Server.
Решение:
Итоговый код скрипта VBScript может быть таким:
Dim oNetwork, sServName, oServer
'Создаем объект сети для получения имени нашего компьютера
'Оно будет использоваться в InputBox по умолчанию
Set oNetwork = CreateObject("Wscript.Network")
sServName = InputBox ("Введите имя сервера", "Сервер", oNetwork.ComputerName)
Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.Name = sServName
'Вызываем подпроцедуру CheckStatus() и передаем ей состояние нашего сервера
CheckStatus(oServer.Status)
Sub CheckStatus(nStatus)
Select Case nStatus
Case 0
MsgBox "Неизвестная ошибка"
WScript.Quit
Case 1
MsgBox "Запущен"
WScript.Quit
Case 2
nUserAnswer = MsgBox ("На паузе. Запустить?", vbYesNo)
If nUserAnswer = 6 Then
oServer.Continue()
End If
'Ждем 2 секунды
WScript.Sleep(2000)
nUserAnswer = MsgBox ("Проверить состояние?", vbYesNo)
If nUserAnswer = 6 Then
'Еще раз вызываем CheckStatus()
CheckStatus(oServer.Status)
Else
WScript.Quit
End If
Case 3
nUserAnswer = MsgBox ("Остановлен. Запустить?", vbYesNo)
If nUserAnswer = 6 Then
oServer.Start False, sServName
Else
WScript.Quit
End If
'Ждем 10 секунд
WScript.Sleep(10000)
nUserAnswer = MsgBox ("Проверить состояние?", vbYesNo)
If nUserAnswer = 6 Then
CheckStatus(oServer.Status)
Else
WScript.Quit
End If
Case 4, 5, 6, 7
nUserAnswer = MsgBox ("Переходное состояние. Подождите несколько секунд. Проверить еще раз?", vbYesNo)
If nUserAnswer = 6 Then
CheckStatus(oServer.Status)
Else
WScript.Quit
End If
End Select
End Sub
|