Страница 1 из 1

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

Добавлено: 10 апр 2008, 08:33
Konstantin
Возможно ли такое в FireBird 2.1 ?

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

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

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

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

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

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

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

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

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

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