Проблема удаления процедуры

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
cav
Сообщения: 21
Зарегистрирован: 18 май 2006, 13:25

Проблема удаления процедуры

Сообщение cav » 21 сен 2006, 06:17

Имеется 2 процедуры T1 и T2 (база не моя) из T1 вызывается T2. Системой обновления была изменена T2. Проблемма в том что изменилось число входный и выходных параметров. T1 не менялась. В результате получился невостановимый backup. Разработчики базы сказали что в принцыпе T1 не используется и ее можно закоментировать. Операция ищменения тела процедуры не удалась
invalid request BRL at offset 116
Попытка удалить процедуру T1 тоже не удалась (drop procedure )
Что можно сделать еще для удаления ? T2 перекомпилируется без ошибок.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 21 сен 2006, 06:52

Проверь в IBExpert, может, кто еще использует T2. По идее перекомпиляция T1 (с закомментированным телом процедуры) должна была дать положительный результат.

cav
Сообщения: 21
Зарегистрирован: 18 май 2006, 13:25

Сообщение cav » 21 сен 2006, 06:59

CyberMax писал(а):Проверь в IBExpert, может, кто еще использует T2. По идее перекомпиляция T1 (с закомментированным телом процедуры) должна была дать положительный результат.
Использует но там все нормально т.е. компиляция проходих успешно.
В общем плане выглядит так:
T2 используется T1 и Т3. T1 не используется больше нигде. (т.к. конечная на цепочке T1>T2)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 21 сен 2006, 10:13

на старых серверах можно так:
www.ibase.ru/devinfo/delproc.htm

cav
Сообщения: 21
Зарегистрирован: 18 май 2006, 13:25

Сообщение cav » 21 сен 2006, 11:05

kdv писал(а):на старых серверах можно так:
www.ibase.ru/devinfo/delproc.htm
СПАСИБО !!!! Помогло.
Забыл указать что сервер был IB 7.5 SP 1

wolverine
Сообщения: 4
Зарегистрирован: 29 мар 2005, 12:01

Сообщение wolverine » 16 окт 2006, 17:13

Тоже не могу удалить процедуру.
FB1.5

пишу DROP PROCEDURE OS_ALL_COMPANY_OPERATIONS_2

в ответ получаю:
Из эксперта

Невозможно подтвердить транзакцию:
This operation is not defined for system tables.
unsuccessful metadata update.
cannot delete.
PROCEDURE OS_ALL_COMPANY_OPERATIONS_2.
there are 1 dependencies.


а из isql:
Statement failed, SQLCODE = -607

unsuccessful metadata update
-cannot delete
-PROCEDURE OS_ALL_COMPANY_OPERATIONS_2
-there are 1 dependencies

Как удалить?? Выше описанный метод пробывал не помогло.

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

Сообщение Merlin » 16 окт 2006, 20:05

Вместо того, чтоб "пробывать" всяку хаку, предназначенную для выбраться из угла, в который сам себя загнал, в данной совершенно рутинной рабочей ситуации надо просто посмотреть зависимости (какая процедура, триггер или не дай бог computed column или чек к ней обращается) и убрать оттуда это обращение.

Ответить