Как реализовать монопольный доступ к БД? Наподобие 1С, чтобы пользователь не мог подключаться, если администрирование БД или замена версии происходит?
И как получить список активных подключений, наподобие IBExpert (active user) ?
Добавлено спустя 2 часа 43 минуты 19 секунд:
Вопрос по списку пользователей снят. По второму вопросу.
Что бы я хотел. Допустим мне нужно в рабочей БД внести изменения. Я запускаю программу под админом, говорю, что теперь доступ у нее монопольный, типа все выйдете.
Потом у клиентв появляется уведомление - "бла, бла, бла, срочный удалитесь...."
Если я вижу в своем мониторе пользователей что кто то забил, то сначала звоню по хорошему, если нет, то удаляю сессию.
Потом, даже если кто то пытается запустить программу, то она не запускается с уведомлением о работах.
Как думаю сделать.
Завести в БД служебное поле и когда нужно писать туда допустим 1, при работе программу таймер допустим раз в минуту проверяет на чтение это поле и если оно становиться равным 1, то включает обратный отсчет и через какое то время закрывает программу у клиента.
Программа при проверке смотрит, чтобы пользователь не был админом чтоб самому работать.
При запуске соответственно она такую же проверку делает при активации главной формы.
Нормально или я гоню? Посоветуйте.
Firebird - список активных подключений (монопольный доступ)
Модератор: Модераторы
Если пользователи ходят под своими учетками, без админских прав, то
см в TIBConfigService.ShutdownDatabase
подробнее https://www.firebirdsql.org/pdfmanual/h ... tstop.html
Грубо говоря, FB уже имеет такой режим: СУБД сама запретит подключение к базе всем, кроме админа. Сама же может всех отключить.
см в TIBConfigService.ShutdownDatabase
подробнее https://www.firebirdsql.org/pdfmanual/h ... tstop.html
Грубо говоря, FB уже имеет такой режим: СУБД сама запретит подключение к базе всем, кроме админа. Сама же может всех отключить.
wadman писал(а):Если пользователи ходят под своими учетками, без админских прав, то
см в TIBConfigService.ShutdownDatabase
Это из каких компонентов, я использую встроенные родные SQLDb.
А со встроенными компонентами такое возможно?
bpg писал(а):А со встроенными компонентами такое возможно?
Почти. Функция fb_shutdown объявлена в ibase60dyn/ibase60, но не задействована.
Если кому всё ещё нужно.
Заводится генератор, так как генератор работает вне транзакций, то именно он подходит для этого.
В программах клиентах по таймеру ведётся опрос этого генератора без приращения значения.
Всё.
Заводится генератор, так как генератор работает вне транзакций, то именно он подходит для этого.
В программах клиентах по таймеру ведётся опрос этого генератора без приращения значения.
Всё.
