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

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

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


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

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

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


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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Посмотрел диалоги чуть выше. При необходимости отключения всех пользователей просто заранее письмо веерно разослать,что будет отключение в такое то время. (по списку адресов электронной почты из той же самой таблицы пользователи) И все,делов то. А в нужное время и нажать заветную кнопку ВЫКЛ)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как отключить всех активных пользователей от БД?
    #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
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как отключить всех активных пользователей от БД?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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