|
Как выгнать всех из клиент-серверной базы | ☑ | ||
---|---|---|---|---|
0
lirt82
07.03.17
✎
10:50
|
Подскажите с кодом, пишу простейшую обработку которая должна выбить всех активных пользователей из базы sql в которой она запускается.
1 процедура. Потом условие поставлю чтоб выбивала всех кроме меня. Затык при выполнении кода: Процедура КнопкаВыполнитьНажатие(Кнопка) Режим = РежимДиалогаВопрос.ДаНет; Ответ = Вопрос("Точно хотите всех выгнать из базы?", Режим, 0); Если Ответ =КодВозвратаДиалога.Да Тогда Коннектор = Новый COMОбъект("V82.COMConnector"); Попытка Сервер = Коннектор.Connect("тут параметры подключения"); МассивСоединений=ПолучитьСоединенияИнформационнойБазы(); Для Каждого Соединение Из МассивСоединений Цикл Сервер.Disconnect(Соединение); КонецЦикла; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Коннектор = Неопределено; ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; при выполнении ругается на Метод объекта не обнаружен (Disconnect) Сервер.Disconnect(Соединение); |
|||
1
repin_mike
07.03.17
✎
10:53
|
(0) Ужас
|
|||
2
repin_mike
07.03.17
✎
10:53
|
КомОбъект тебе зачем нужен в этой обработке?
|
|||
3
lirt82
07.03.17
✎
10:59
|
(2) чтоб подрубиться к серверу где крутиться база.
|
|||
4
1Снеговик
гуру
07.03.17
✎
11:00
|
Интересный вирус
|
|||
5
lirt82
07.03.17
✎
11:00
|
(2) все допетрил, нужно подрубиться к АГЕНТУ сервера и все активные сеансы отключить
|
|||
6
lirt82
07.03.17
✎
11:03
|
(5)подскажите как?
|
|||
7
1dvd
07.03.17
✎
11:05
|
(6) мышкой
|
|||
8
repin_mike
07.03.17
✎
11:12
|
Я думаю что никак. Подключайся к оснастке и выкидывай всех оттуда.
|
|||
9
Господин ПЖ
07.03.17
✎
11:14
|
мульон скриптов лежит готовых в сети
|
|||
10
Fish
07.03.17
✎
11:35
|
(8) Почему никак? Очень даже как.
|
|||
11
shuhard
07.03.17
✎
12:04
|
(2) ТС идёт верной дорогой
(8) бред (9) +100500 |
|||
12
lirt82
07.03.17
✎
12:20
|
готово!
Процедура КнопкаВыполнитьНажатие(Кнопка) Режим = РежимДиалогаВопрос.ДаНет; Ответ = Вопрос("Точно хотите всех выгнать из базы?", Режим, 0); Если Ответ =КодВозвратаДиалога.Да Тогда Коннектор = Новый COMОбъект("V83.COMConnector"); Попытка Сервер = Коннектор.ConnectWorkingProcess("tcp://SQL:1641"); // Аутентифицироваться с административными правами в нужной базе. Сервер.AddAuthentication("ИмяПользака", "пароль"); // Создать объект нужной информационной базы. ИнформационнаяБаза = Сервер.CreateInfoBaseInfo(); ИнформационнаяБаза.Name = "ИмяБазы"; // Получить соединения базы. СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза); // Разорвать соединения клиентских приложений. Для Каждого Соединение Из СоединенияБазы Цикл Сервер.Disconnect(Соединение); КонецЦикла; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Коннектор = Неопределено; ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; КонецПроцедуры |
|||
13
organizm
07.03.17
✎
12:21
|
поищи в УПП есть выгонялка
|
|||
14
organizm
07.03.17
✎
12:22
|
Обработка - Активные пользователи - кнопка "Завершить сеанс"
|
|||
15
Serg_1960
07.03.17
✎
12:28
|
(0) Гугли, да воздастся тебе по заслугам твоим :)
Коннектор = Новый COMОбъект("v81.COMConnector"); Агент = Коннектор.ConnectAgent(Сервер); Кластеры = Агент.GetClusters(); Для Каждого Кластер из Кластеры Цикл Агент.Authenticate(Кластер, Пользователь,Пароль); Процессы = Агент.GetWorkingProcesses(Кластер); Для каждого Процесс из Процессы Цикл ... |
|||
16
Serg_1960
07.03.17
✎
12:36
|
+(14)
// Подключение к агенту сервера АгентСервера = COMСоединитель.ConnectAgent(ИдентификаторАгентаСервера); // Найдем необходимый нам кластер Для Каждого Кластер Из АгентСервера.GetClusters() Цикл Если Кластер.MainPort = НомерПортаКластера Тогда АгентСервера.Authenticate(Кластер, ПараметрыСоединенияССервером1СПредприятие.ИмяАдминистратораКластера, ПараметрыСоединенияССервером1СПредприятие.ПарольАдминистратораКластера); СписокСеансов = АгентСервера.GetSessions(Кластер); Для Каждого Сеанс из СписокСеансов Цикл |
|||
17
lirt82
07.03.17
✎
13:23
|
(15) (16) спасибо большое
|
|||
18
Рэйв
07.03.17
✎
13:27
|
(0)БлокировкаСоединенийСИнформационнойБазой
стандартная же есть |
|||
19
Fish
07.03.17
✎
13:32
|
(18) А разве блокировка рвёт уже установленные соединения?
|
|||
20
cons74
07.03.17
✎
14:15
|
(19) рвет. Но это в каждой конкретной конфе прописано по-своему было. В новых - это БСП. На сколько помню 5 минут от установленного времени начала - и рвет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |