![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в Firebird в хранимой процедуре обратиться к таблице по имени [IB6.x]
Пубертанец © (2004-01-28 09:54:00)
Например, есть триггер, который в принципе одинаков для всех таблиц, но в его теле я бы хотел загнать в переменную имя таблицы, для которой выполняется этот триггер. Как это узнать? И как вообще узнать имя выполняющегося триггера?
Digitman (2004-01-28 15:57:00) [1]
> Карелин Артем © (28.01.04 15:49) [12]
> имя процедуры
какой такой процедуры ? выяснилось же, что ни о каких пройедурах речи вовсе не идет ?
Карелин Артем (2004-01-28 15:49:00) [2]
Идея: имя процедуры в триггере будет жестко зашито, но в нужный момент BLR нашей процедуры подменяется из BLR нужной :-)
Digitman (2004-01-28 15:21:00) [3]
> tria © (28.01.04 14:33) [10]
речь идет, очевидно, об EXECUTE STATEMENT
она здесь, по реальной теме вопроса, действительно как телеге пятое колесо
> Пубертанец (28.01.04 14:01) [9]
т.е. проблема рассосалась сама собой ? вот и хорошо !
tria (2004-01-28 14:33:00) [4]
Помоему, в Firebird 1.5 появилась запрашиваемая тобой возможность (см. тему, а не ее расшифровку, т.к. в теме задан один вопрос, а в тексте ниже ее - совершенно другой). Только синтаксиса я не помню, сам никогда не пользовал.
Пубертанец (2004-01-28 14:01:00) [5]
Я признаю свою ошибку
Digitman (2004-01-28 12:53:00) [6]
> Пубертанец (28.01.04 12:26) [6]
угу ... эт ты , значит, решил один и тот же генератор использовать для формирования уникальных значений (и их диапазонов) сразу нескольких таблиц ? А чем, какими устойчивыми соображениями продиктована такая вот блажь ?
Romkin (2004-01-28 12:27:00) [7]
Оййй млииииин. А генераторы, думаешь, чиста для понтов придумали?
Пубертанец (2004-01-28 12:26:00) [8]
Нет, просто хочу создать хранимую процедуру, которая бы вставляла ID каждой таблицы из определенного промежуткаю Например:
Таблица 1 - ID могут генерироваться в промежутке 1-500
Таблица 2 - ID могут генерироваться в промежутке 501-1000 и т.д.
Digitman (2004-01-28 11:32:00) [9]
ты таким образом протоколировать обращения к таблицам намерен ? я правильно понял ?
Пубертанец (2004-01-28 11:20:00) [10]
То, что триггеры как объекты разные - это понятно. Но мне просто каждый раз в тексте триггера надо писать имя таблицы, для которой он выполняется, а было бы намного легче - CTRL+C CTRL+V
Digitman (2004-01-28 11:02:00) [11]
но если тебе интересны в принципе связи между теми или иными триггерами и соотв. им таблицами, то такая инф-ция имеется и доступна в сист.таблице RDB$TRIGGERS
Digitman (2004-01-28 10:57:00) [12]
> Как в Firebird в хранимой процедуре
> Например, есть триггер
Нестыковочка получается. Триггер и SP - две разные разницы
> триггер, который в принципе одинаков для всех таблиц
это тексты триггеров одинаковы.
но триггеры-то сами как IB-объекты разные ! каждый из них жестко привязан только к одной таблице, операции над которой данный триггер отслеживает.
jack128 (2004-01-28 10:52:00) [13]
никак. тригер вешается на одну таблицу - соответственно в его теле ты абсолютно точно знаешь для какой таблицы этот тригер ;-)