(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Принудительное отключение пользователей

Источник: Sgml

При многопользовательской работе необходимость отключить от базы данных всех пользователей возникает довольно часто. Сделать это будет легко, если добавить в клиентскую программу специальную форму, которая будет по своему таймеру проверять наличие или отсутствие какого-либо сигнала и закрывать приложение. Таким сигналом может служить что угодно: появление файла с условным именем, особого сообщения электронной почты, специфического значения в специальном поле предназначенной для этого таблицы и т.д. и т.п.

В настоящее время, я использую последний метод, так как с его помощью проще реализовать запрет кому попало «выгонять» всех. Достаточно лишь дать права на изменение данных нужной группе или пользователю, а удалять и добавлять записи и вовсе запретить после того, как единственная сигнальная запись появится в таблице.

Там присутствуют лишь основы данного метода, однако в большинстве случаев этого должно хватить. В качестве сигнальной используется таблица Abort с единственным полем ExitNow логического типа, в которой есть только одна запись. Значение TRUE и является признаком того, что следует закрыть программу. Разумеется, эта таблица должна находиться в общей базе данных на сервере, а не в клиентской программе. В примере сделано наоборот только для того, чтобы не затрудняться установкой связи с другой базой.

Вся логика сосредоточена в форме frmAbortCheck. Она вовсе не обязана быть невидимой. Если Ваше приложение использует какую-либо форму в качестве, например, навигационной и она всё время загружена, а таймер не используется, то вполне можно задействовать и её. Таймер формы выставлен на 10 секунд (в реальности интервал надо увеличить до разумной величины). Пока сигнала нет, ничего не происходит, но стоит ему появиться, как при следующем срабатывании таймера это будет обнаружено.

Однако, выгружать программу сразу нельзя. Надо дать возможность и время пользователям закончить работу и закрыть приложение «добровольно». Поэтому, при первом обнаружении установленного «флага выхода» на экран выдаётся только предупреждение о необходимости завершить работу. Использовать для такого сообщения стандартный MsgBox нельзя, так как он блокирует таймер и, кроме того, хочется привлечь внимание пользователя большими красными страшными буквами.

Только после того, как предупреждающее сообщение выдано, можно, выждав ещё один интервал таймера, завершить работу приложения. Если за это время успеть снять флажок, то завершения работы не последует. Ну, и, конечно, использовать для установки/сброса флажка в реальной программе следует другую, специально предназначенную для этого форму.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 05.05.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Apps for business (corporate)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100