Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизAlter рекурсивной процедуры Найти похожие ветки
← →
Lexer (2004-02-02 11:50) [0]Столкнулся с такой во проблемой... Есть рекурсивная процедура, мне надо изменить количество её выходных параметров, точнее добавить еще один. Может есть способ сделать Alter без её удаления, т.к. эту проыедуру используют еще процедур 20, влом мне все их пересоздавать...
← →
MV (2004-02-02 11:57) [1]1.Создаещь новую процедуру, с похожим именем;
2.Альтеришь остальные двадцать, которые ссылались на старую.
3. Дроп старой.
А при чем тут рекусия? Обычно проблема при создании новой рекурсивно решается так:
1.
Alter процедура
бегин
/* Типа пустая*/
енд
2.
Alter процедура
бегин
ссылается Сама на себя.
енд
← →
Sandman25 (2004-02-02 11:57) [2]Но ведь все равно нужно будет изменить вызов этой процедуры из тех 20. Или есть способ добавить выходной параметр по умолчанию?
← →
MV (2004-02-02 11:59) [3]Что за сервак-то?
← →
DenK_vrtz (2004-02-02 12:00) [4]хоть и не указана СУБД, попробую предложить
в описании процедуры вместо CREATE написать CREATE or REPLACE
+ перекомпиляция недействительных объектов
← →
MV (2004-02-02 12:02) [5]+ перекомпиляция недействительных объектов
Это как?
← →
Lexer (2004-02-02 12:02) [6]Новый параметр будут использовать не все, только часть из старых процедур.
Проблема в том что Drop надо делать в определенном порядке порядке, и также Create.
День работы блин, чтоб выявить все ссылки...
Использую IB.5, и мне кажеться там нет Replace (
← →
Lexer (2004-02-02 12:04) [7]Где-то видел статейку, это обходится как-то, используя RDB таблицы, но, блин не найду её..
← →
MV (2004-02-02 13:05) [8]Ах, IB, что ж ты сразу не сказал!
Возьми IBExpert - там тебе покажут все зависимые ссылки сразу!
Комментишь во всех вызывающих процедурах/триггерах ссылку, затем
1.
Alter процедура (новый набор параметров)
бегин
/* Типа пустая*/
енд
2.
Alter процедура (новый набор параметров)
бегин
ссылается Сама на себя (новый набор параметров).
енд
потом восстанавливаешь ранее закомментированное (с учетом новых параметров, естественно). Получаем рабочую базу образец.
Юзай Data Base Comparer - получишь на выходе готовый скрипт для правки остальных экземпляров базы (если таковые имеются) на основе сравнения старой и новой структуры.
← →
MV (2004-02-02 15:30) [9]IBExpert включает в себя Datа Base Comparer - во, блин, век живи, век учись!
← →
Соловьев (2004-02-02 15:50) [10]Я для процедуры работы с деревом использовал рекурсию, так IBExpert все делал без проблем в редакторе - никаких Datа Base Comparer не юзал(явно). Все редактируется и правится хоть рекурсия, хоть что-то.
← →
MV (2004-02-02 16:28) [11]Comparer - это чтобы скрипт генерить, который потом клиентам рассылать, чтобы структуры базы по новую версию правили.
← →
Lexer (2004-02-02 17:49) [12]Я как раз с IBExpert работаю, но Comparer там не нашел...
Кстати большое спасибо MV, всё гениальное ОЧЕНЬ просто :)
Всё изминил, а то пришлось бы впихивать в скрипт все дропы креаты остальных процедур, да еще и смотреть все ссылки...
Еще раз спасибо
← →
MV (2004-02-02 18:01) [13]http://www.ibexpert.com/rus/ibe_sfx.exe - самый свежий.
ALT > Внешние модули > IB DataBase Comparer
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.082 c