Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Необходима помощь с UDF


Barman ©   (2003-12-25 07:45:00) 

Уважаемые Мастера, прошу вашей помощи!
Есть СУБД Firebird. Есть несколько библиотек UDF. Я написал библиотеку, объединив все необходимые мне функции из нескольких библиотек в одну. Попытался поменять в базе данных название библиотеки с “udf 1” на “udf 2” и название точки входа с “Entry Point1” на “ Entry Point2”. При компиляции функции выскакивает такая ошибка:

This operation is not defined for system tables,
unsuccessful metadata update.
cannot delete
invalid switch ABS
there are 2 dependencies.

Как отключить эти зависимости? Функция используется в 2 процедурах.


Desdechado   (2003-12-26 16:15:00) [1]

не очень легальный способ, но все же
UPDATE rdb$function_arguments SET rdb$field_length = 512
WHERE rdb$function_name = "INZONE" AND rdb$argument_position = 1
аналогично и для RDB$FUNCTIONS (только соблюдай регистр символов)


Digitman   (2003-12-26 08:18:00) [2]

ну что поделаешь. если ты сразу неразумно поступил, с кучей библиотек !

придется последовательно отслеживать все зависимости по цепочке и делать вышеупомянутое для каждой из процедур ..

впрочем, если данных и метаданных в БД не так уж много, можно поступить иначе : средствами, нампример, IBExpert выгрузить структуру и данные базы в текстовый скрипт, подправить в нем нужные ссылки, а запустить скрипт на исполнение, чтобы создать базу заново


Barman   (2003-12-25 18:46:00) [3]

Дак при компиляции эти процедуры тоже ругаются на ссылки на другие процедуры!


Digitman   (2003-12-25 18:18:00) [4]


> Дело в том, что эти процедуры на другие ссылаются


тебе какое до этого дело ? и пусть ссылаются ! в чем проблема ? две процедуры всего нужно на время изменить и перекомпилить ! а потом на место вернешь прежний их текст


Barman   (2003-12-25 17:06:00) [5]

А попроще нельзя никак? Дело в том, что эти процедуры на другие ссылаются...


Digitman   (2003-12-25 08:30:00) [6]

закомментарь на время строчки в этих 2-х процедурах, где идет обращение к UDF, перекомпилируй процедуры, затем измени декларации UDF так чтобы они соответствовали новым названиям файлов библиотек и новым именам точек входа, затем раскомментарь обращения к й-циям в процедурах и вновь перекомпилируй их.


Наверх

Титульная страница Поиск, карта сайта Написать письмо