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

FB 1.5 Вопрос по UDF.

Добавлено: 25 июл 2008, 11:06
_SRG_
Здравствуйте.

Возмжно ли внутри функции UDF определить имя БД(файла) для которой производится вызов функции?

М.б. возможно получить имя БД(файла) из системных таблиц запросом?

Добавлено: 25 июл 2008, 11:48
WildSery
А может, передать в UDF имя БД доп. параметром?

Добавлено: 25 июл 2008, 12:51
_SRG_
WildSery писал(а):А может, передать в UDF имя БД доп. параметром?
Хм... хотел это написать еще в первом посте. Такой вариант не устроит. Если бы в ХП обращающейся к UDF можно было бы определить БД, тогда бы устроил вариант передачи параметром.

Хранить название БД "где-то" в БД (таблицах, константа в ХП и т.д.) так же не решит проблему.

Ситуация на самом деле очень реальная:

Есть 1 сервер на нем БД DB_1.GDB бэкапим ее, разворачиваем "рядом" на том же сервере но с именем DB_2.GDB. Вот именно в такой ситуации есть необходимость в UDF различать базы от которых происходит обращение в UDF (общую для обеих БД). Есть мысли как такое реализовать?

Добавлено: 25 июл 2008, 13:38
Tonal
А зачем это может быть нужно?

Добавлено: 25 июл 2008, 16:13
WildSery
При коннекте к БД в RDB$SET_CONTEXT заноси своё название.
ХП будет оттуда брать и передавать УДФ.

Добавлено: 25 июл 2008, 16:26
Merlin
Tonal писал(а):А зачем это может быть нужно?
Чтобы в УДФ сделать Drop Database?

Добавлено: 25 июл 2008, 17:29
_SRG_
WildSery писал(а):При коннекте к БД в RDB$SET_CONTEXT заноси своё название.
ХП будет оттуда брать и передавать УДФ.
Мысль хорошая. Только вот FB 1.5...

Добавлено: 25 июл 2008, 17:43
armagedon2007
В FB 2.x

Код: Выделить всё

RDB$GET_CONTEXT('SYSTEM', 'DB_NAME')