Как в тригере определить сколько коннектов к БД

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Konstantin
Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Как в тригере определить сколько коннектов к БД

Сообщение Konstantin » 10 апр 2008, 08:33

Возможно ли такое в FireBird 2.1 ?

Если пользователь один подключен к БД
обработку делать по одной ветке.
Если несколько то по другой.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 10 апр 2008, 09:50

Если коннект от имени SYSDBA, то в общем случае это возможно (select count(*) from MON$ATTACHMENTS). Но я бы лучше пересмотрел консерваторию.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 апр 2008, 09:50

Возможно ли такое в FireBird 2.1 ?
возможно, только нафига это делать в триггере?
обработку делать по одной ветке.
Если несколько то по другой.
мда. А если когда обработка пошла по "одной" ветке, подключился еще один пользователь?
Нельзя так делать, короче.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 10 апр 2008, 11:03

kdv писал(а):А если когда обработка пошла по "одной" ветке, подключился еще один пользователь?
И наконец, на арене акробаты - два пользователя одновременно вошли туда, не увидели друг друга, и пошли по "монопольной" ветке.

Konstantin
Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение Konstantin » 10 апр 2008, 18:32

kdv писал(а): возможно, только нафига это делать в триггере?
Не Хотят видеть "дырок" в нумерации результатов расчета.
Которые они переодически удаляют. Временные данные.
Номер берется с генератора и должен быть уникальным.
А если когда обработка пошла по "одной" ветке, подключился еще один пользователь?
Там или 2 человека одновременно либо один.

select count(*) from MON$ATTACHMENTS
Если не SYSDBA не дает реальное число подключений.
а под SYSDBA они не работают вообще.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 апр 2008, 10:51

Не Хотят видеть "дырок" в нумерации результатов расчета.
Которые они переодически удаляют. Временные данные.
Номер берется с генератора и должен быть уникальным.
это лечится только административно, или демонстративно, на примерах.
не нужно автоматизировать бардак.

Konstantin
Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение Konstantin » 11 апр 2008, 12:06

kdv писал(а):или демонстративно, на примерах.
не нужно автоматизировать бардак.
Демонстративно они уже видели к чему это приводит :)
когда одновременно работают. (Данные то не сохраняются. :) )
И откатил я на многопользовательскую схему.

P.S.
Хотя странно - по логике фукция должна давать одинаковый результат.
Что для SysDBA что для других пользователей.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 апр 2008, 12:44

Хотя странно - по логике фукция должна давать одинаковый результат.
Что для SysDBA что для других пользователей.
по какой именно логике не SYSDBA должен видеть то, что делается в других коннектах?

Ответить