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

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

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

Ответить
_SRG_
Сообщения: 17
Зарегистрирован: 22 окт 2007, 09:36

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

Сообщение _SRG_ » 25 июл 2008, 11:06

Здравствуйте.

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

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

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

Сообщение WildSery » 25 июл 2008, 11:48

А может, передать в UDF имя БД доп. параметром?

_SRG_
Сообщения: 17
Зарегистрирован: 22 окт 2007, 09:36

Сообщение _SRG_ » 25 июл 2008, 12:51

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

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

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

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

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Сообщение Tonal » 25 июл 2008, 13:38

А зачем это может быть нужно?

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

Сообщение WildSery » 25 июл 2008, 16:13

При коннекте к БД в RDB$SET_CONTEXT заноси своё название.
ХП будет оттуда брать и передавать УДФ.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 25 июл 2008, 16:26

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

_SRG_
Сообщения: 17
Зарегистрирован: 22 окт 2007, 09:36

Сообщение _SRG_ » 25 июл 2008, 17:29

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

armagedon2007
Сообщения: 44
Зарегистрирован: 14 мар 2008, 21:01

Сообщение armagedon2007 » 25 июл 2008, 17:43

В FB 2.x

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

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

Ответить