Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как отключить всех активных пользователей от БД? / 16 сообщений из 16, страница 1 из 1
20.07.2016, 10:58
    #39276906
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
Коллеги, добрый день!
Подскажите, пожалуйста, как отключить всех активных пользователей (кол-во максимум 20 юзеров) от базы Access (.accdb)? Например для того, чтобы сделать бэкап или произвести какие-либо изменения.
База лежит в общедоступном месте на сетевом диске.
...
Рейтинг: 0 / 0
20.07.2016, 11:16
    #39276918
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
-SWAN-,
744492
...
Рейтинг: 0 / 0
20.07.2016, 11:59
    #39276967
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
guest_rusimport,
а как с помощью Административных действий отрубить активных пользователей?
...
Рейтинг: 0 / 0
20.07.2016, 12:13
    #39276979
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
-SWAN-guest_rusimport,
а как с помощью Административных действий отрубить активных пользователей?

интересуют средства операционной системы?

C:\Documents and Settings\Admin>net session /?
Синтаксис данной команды:


NET SESSION
[\\имя_компьютера] [/DELETE]
...
Рейтинг: 0 / 0
20.07.2016, 12:21
    #39276990
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
guest_rusimport-SWAN-guest_rusimport,
а как с помощью Административных действий отрубить активных пользователей?

интересуют средства операционной системы?

C:\Documents and Settings\Admin>net session /?
Синтаксис данной команды:


NET SESSION
[\\имя_компьютера] [/DELETE]
И в базе появятся сиротские записи ну а Дальше в плоть до полного коллапса.
С Access такие номера не проходят (уже проходили это).
Нет механизма коректного завершения сесии. (если вы конечно не используете транзакции)
Только полюбовная договоренность между разработчиком и пользователями.
С уважением.
...
Рейтинг: 0 / 0
20.07.2016, 12:29
    #39276996
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
ROIguest_rusimportпропущено...


интересуют средства операционной системы?

C:\Documents and Settings\Admin>net session /?
Синтаксис данной команды:


NET SESSION
[\\имя_компьютера] [/DELETE]
И в базе появятся сиротские записи ну а Дальше в плоть до полного коллапса.
С Access такие номера не проходят (уже проходили это).
Нет механизма коректного завершения сесии. (если вы конечно не используете транзакции)
Только полюбовная договоренность между разработчиком и пользователями.
С уважением.

))) это понятно априори, но человек ищет "приключений"... как спросил - так ответил )))
...
Рейтинг: 0 / 0
21.07.2016, 13:01
    #39277760
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
Встречал я где-то пример принудительного отключения пользователей от от базы. И даже пользовался. назывался Abort. Попробую найти.
...
Рейтинг: 0 / 0
21.07.2016, 13:16
    #39277785
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
JossВстречал я где-то пример принудительного отключения пользователей от от базы. И даже пользовался. назывался Abort. Попробую найти.
Дык мы тоже умеем отключать.
Тут вопрос о сохранении целостности и корректности после этих "отключений"
...
Рейтинг: 0 / 0
21.07.2016, 13:19
    #39277791
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
Коллеги, я сделал все-таки программное отключение пользователей (через форму и таймер).
Вопрос пока снят)))
Всем спасибо!
...
Рейтинг: 0 / 0
21.07.2016, 13:42
    #39277824
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
-SWAN-Коллеги, я сделал все-таки программное отключение пользователей (через форму и таймер).
Вопрос пока снят)))
Всем спасибо!

Как и вы делал подобную конструкцию. Статус пользователя хранился в отдельной таблице. Если есть в сети ,то поле равно 1,если нет ,то равно 0. При проставлении в таблице принудительно 0 напротив активного пользователя закрывает аксесс.
Отключает аксесс у пользователя даже на компьютере в спящем режиме и заблокированном запароленном режиме.
...
Рейтинг: 0 / 0
21.07.2016, 13:57
    #39277846
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
Дополню свой топик

Есть Сайт Заметки об MS Access

В нём есть статья Принудительное отключение пользователей

Пример прилагается
...
Рейтинг: 0 / 0
21.07.2016, 14:43
    #39277909
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
JossДополню свой топик

Есть Сайт Заметки об MS Access

В нём есть статья Принудительное отключение пользователей

Пример прилагается

http://www.sql.ru/forum/actualfile.aspx?id=19436390] Приложенный файл (abort.rar - 21Kb)
Однако, выгружать программу сразу нельзя. Надо дать возможность и время пользователям закончить работу и закрыть приложение «добровольно». Поэтому, при первом обнаружении установленного «флага выхода» на экран выдаётся только предупреждение о необходимости завершить работу. Использовать для такого сообщения стандартный MsgBox нельзя, так как он блокирует таймер и, кроме того, хочется привлечь внимание пользователя большими красными страшными буквами.

Только после того, как предупреждающее сообщение выдано, можно, выждав ещё один интервал таймера, завершить работу приложения. Если за это время успеть снять флажок, то завершения работы не последует. Ну, и, конечно, использовать для установки/сброса флажка в реальной программе следует другую, специально предназначенную для этого форму.
Я же говорил - надо аккуратно, ну и согласия пользователя.
Чё вы все не слушаете когда вам дело говорят.
С уважением.
...
Рейтинг: 0 / 0
21.07.2016, 15:12
    #39277954
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
Представил себя в роли пользователя:

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

Что-то мне расхотелось работать в такой программе.
:)
...
Рейтинг: 0 / 0
21.07.2016, 15:29
    #39277987
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
PredeclaredПредставил себя в роли пользователя:

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

Что-то мне расхотелось работать в такой программе.
:)

Ну да, а как рубануть сессию - это нормально (и потом долго плакать).
Да чё я вас уговариваю - делайте как считаете нужным.
Всё, далее мне не интересно.
С уважением.
...
Рейтинг: 0 / 0
21.07.2016, 16:06
    #39278047
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
Нашел старую базу свою, немного упростил, тоже выкладываю в плане примера.
Пользователь заходит под паролем в базу , его данные записываются и вносятся в таблицу. (на примере админ сразу попадает на форму мониторинга. Там еще для затравки смоделировал пару активных пользователей . Можно их отключить, а можно и самого себя) На форме администрирование можно сразу посмотреть кто находиться в сети и при необходимости его отключить. Работает при спящих режимах, запароленных компах. Пароль 12345

Посмотрел диалоги чуть выше. При необходимости отключения всех пользователей просто заранее письмо веерно разослать,что будет отключение в такое то время. (по списку адресов электронной почты из той же самой таблицы пользователи) И все,делов то. А в нужное время и нажать заветную кнопку ВЫКЛ)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
09.10.2018, 13:55
    #39714911
Rikozenit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех активных пользователей от БД?
А у меня клиентский файл один, поэтому если уж отключать от базы пользователей, то всех и сразу. Для этого я сделал скрытую форму "0_frm_hidden" и таблицу "Abort" с полями "Выход", "Да". В поле "Да" значение "0" означает штатную работу, "1" - просьба завершить работу с активацией таймера отключения БД через 5 мин, "2" - немедленное закрытие БД.
При открытии БД на форме авторизации делаю проверку:
Код: vbnet
1.
2.
3.
4.
If DLookup("[Да]", "Abort", "[Выход]=" & 1) > 0 Then
                            MsgBox "БД недоступна на время технических работ!" & vbCrLf & "Попробуйте зайти через 10 минут" & vbCrLf & "Спасибо за понимание)"
                            Cancel = True
                            DoCmd.Quit


После авторизации пользователя открывается форма в скрытом режиме:
Код: vbnet
1.
DoCmd.OpenForm "0_frm_hidden", , , , , acHidden ' загрузка слежения по таймеру за переменной в поле "ДА" таблицы "Abort" 


В скрытой форме:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Form_Load()
Me.TimerInterval = 20000 ' Проверка признака отключения БД производится каждые 20 сек
End Sub

Private Sub Form_Timer()
If time2 = 0 Then   ' Проверяем не активирован ли таймер выхода из БД
    If DLookup("[Да]", "Abort", "[Выход]=" & 1) = 2 Then ' Проверяем не установлен ли признак мгновенного выхода из БД:
    Me.Refresh
    Me.Requery
    DoCmd.Quit ' Выход из БД
    End If
' Проверяем не установлен ли признак выхода из БД по таймеру:
    If DLookup("[Да]", "Abort", "[Выход]=" & 1) = 1 Then
            MsgBox "На время проведения технических работ" & vbCrLf & "просьба завершить работу в Ассистенте!" & vbCrLf & "Через 5 минут программа будет закрыта автоматически." & vbCrLf & "Спасибо за понимание)"
            Dim Cancel As Boolean
            Cancel = True
            time2 = Time() + TimeValue("00:05:00") ' Активируем таймер выхода из БД: для этого к текущему времени прибавляем 5 минут
    End If
ElseIf Time() > time2 Then ' Если после очередного анализа таймера текущее время больше таймера выхода из БД - идёт выход:
Me.Refresh
Me.Requery
DoCmd.Quit
End If
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как отключить всех активных пользователей от БД? / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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