Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.23;
Скачать: CL | DM;

Вниз

Необходима помощь с UDF   Найти похожие ветки 

 
Barman ©   (2003-12-25 07:45) [0]

Уважаемые Мастера, прошу вашей помощи!
Есть СУБД 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 процедурах.


 
Digitman ©   (2003-12-25 08:30) [1]

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


 
Barman ©   (2003-12-25 17:06) [2]

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


 
Digitman ©   (2003-12-25 18:18) [3]


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


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


 
Barman ©   (2003-12-25 18:46) [4]

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


 
Digitman ©   (2003-12-26 08:18) [5]

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

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

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


 
Desdechado ©   (2003-12-26 16:15) [6]

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



Страницы: 1 вся ветка

Текущий архив: 2004.01.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-72932
Gero
2003-12-31 23:07
2004.01.23
Админы! Проснитесь!


3-72676
MV
2003-12-25 12:36
2004.01.23
Преход и InterBase на MS SQL


9-72616
pavel_k
2003-07-06 00:37
2004.01.23
Ошибка в игре Access violation


4-72991
independant
2003-11-18 18:49
2004.01.23
Определение текущего времени.


1-72745
SoftFM
2004-01-13 23:46
2004.01.23
ListBox и работа с ним