|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Давным давно (с 1997 года существует база) В какой то период (наверное при Интербейзе 5.6) были написаны UDF И как на грех одну назвал ROUND. Так она теперь и работает. И используется в 117 сторед процедурах. Но вот хочется ее убрать и использовать встроенную в Птицу ф-цию ROUND Параметры у встроенной и у UDF совпадают. IBExpert показывает ее в процедурах как встроенную. Но если я пытаюсь отресторить базу на сервер где нет моей UDF библиотеки то получаю сообщение, что отсутствует ф-ция ROUND Подскажите пожалуйста порядок как пофиксить это правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 08:55 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhr, удалить из базы информацию о регистрации UDF функции, перекомпилировать все зависимые ХП, триггеры и ограничения. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:06 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhr, в IBE комментируешь тело всех зависимых процедур. Удаляешь определение UDF и убираешь комментарий тела процедур и перекомпилируешь процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:10 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Дык как удалить то. При удалении получаю, что куча зависимостей от нее. 117 процедур и одна таблица ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:11 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhr, значит придётся делать ещё ALTER для вычисляемого поля и на его место делать временную заглушку ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:12 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Симонов Денисvvkhr, в IBE комментируешь тело всех зависимых процедур. Удаляешь определение UDF и убираешь комментарий тела процедур и перекомпилируешь процедуры.IBE разве не умеет сам это делать для зависимых объектов ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:29 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Получилось в следующем порядке В IBExpert 1. Деактивировал все процедуры 2. В таблице изменил вычислимое поле 3. Удалил встроенную функцию 4. Активировал все процедуры 5. Вернул описание вычислимого поля Всем спасибо. Интересно еще не изменятся ли результаты этих процедур. Всего можно ожидать от моего РОУНДА и от встроенного ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:35 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhrИнтересно еще не изменятся ли результаты этих процедур. Всего можно ожидать от моего РОУНДА и от встроенногоЗадекларируй свой round под другим именем. Сделай цикл на 10млн значений (хотя бы) с нужным тебе шагом и разрядностью и сравнивай округление своего и встроенного round. Сравнивай, есс-но, с учётом погрешности. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:38 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
hvlad, увы не умеет. Надо бы пожелать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 09:50 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Симонов Денис, Зато умеет все сразу. Во многих случаях достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 10:00 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhrбыли написаны UDF И как на грех одну назвал ROUND Наоборот очень повезло. Особенно, что касается использования в текстах запросов из клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 11:11 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
YuRock, Поясните мысль. До меня что то не дошло ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 11:13 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhr, Переписывать ничего не надо. Выискивать использование. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 11:57 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
20.06.2018 11:57, YuRock пишет: > Переписывать ничего не надо. Выискивать использование. без перекомпиляции blr не катит. в blr ссылка на UDF. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 12:02 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Мимопроходящийв blr ссылка на UDF YuRockОсобенно, что касается использования в текстах запросов из клиента ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 12:10 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
А вариант выгрузить структуру в скрипт, а затем перелить данные не предлагать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2018, 10:30 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
__Avenger__, на самом деле этот способ может быть очень медленным для больших БД. Для ускорения заливки перед самой заливкой надо как минимум деактивировать триггеры, индексы и желательно на время удалять ограничения. Не самое простое дело ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2018, 10:44 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
vvkhr, кстати, я тут добавлю, что "то получаю сообщение, что отсутствует ф-ция ROUND" фокус в том, что это warning, предупреждение, а не ошибка. Достаточно было сохранить лог рестора, а после рестора перекомпилировать все те объекты, для которых показывался warning по отсутствию udf. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2018, 10:56 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
21.06.2018 10:56, kdv пишет: > Достаточно было сохранить лог рестора, а после рестора перекомпилировать все те объекты, для которых показывался warning по отсутствию udf. UDF'ы имеют более высокий приоритет чем SDF. если в RDB$FUNCTIONS задекларирована функция Round, по сервер пытается воткнуть именно её, а не одноимённою SDF. и любая перекомпиляция обломится. UDF надо сперва грохнуть. а грохнуть он не может, потому что зависимости. а зависимости убрать - закомментировать текст соответствующих объектов. ну и т.д. зы: сам сейчас танцую с бубном на этом минном поле... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2018, 11:09 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Мимопроходящий, да это тот ещё труд. Сам намучился когда с 1.5 на 2.5 переходил. Задолбался UDF выпиливать. Зато с 2.5 на 3.0 перешёл очень быстро. Могу пожелать разве что терпения. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2018, 11:14 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
А почему нельзя завести базу с UDF, а потом постепенно выпиливать ее применения? В конце концов, если UDF заброшенная и не имеет нужной разрядности, можно же сделать либу с заглушками. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2018, 10:17 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Василий 2, так и делал. Главное не забивать на это. А то ведь можно бекап\рестор прошёл и успокоился. Чем меньше UDF тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2018, 10:25 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Мимопроходящийзы: сам сейчас танцую с бубном на этом минном поле... Мой телепатический локатор вангует в будущем ещё более эффектные танцы вокруг моих многочисленных update тили-тили set a=a+10, b=a*c where трали-вали твердо веря, что а в a*c уже на 10 больше, чем на момент выполнения оператора. Рассеяно хаотически в разные годы и в PSQL и в приложении, обнаруживать себя будет, сталбыть, тоже хаотически и в виде хрени в данных, которая будет всплывать через месяц после образования, когда непонятка будет замечена. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2018, 19:46 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Симонов ДенисВасилий 2, так и делал. Главное не забивать на это. А то ведь можно бекап\рестор прошёл и успокоился. Чем меньше UDF тем лучше. К сожалению (или к счастью? Инструмент-то отличный), совсем без UDF не всегда удается обойтись. Разве что если когда-нибудь в FB встроят движок скриптов, умеющий взаимодействовать с системой :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2018, 10:12 |
|
О замене UDF ROUND на встроенную ROUND
|
|||
---|---|---|---|
#18+
Василий 2, прежде чем писать UDF/UDR надо посмотреть - можно ли использовать встроенные функции - можно ли написать PSQL функцию устраивающую по быстродействию (для Firebird 3.0) - можно ли обойтись возможностями клиентского приложения - рассмотреть возможность использования внешних утилит/сервисов И только если без UDF/UDR никак начинать писать её. В общем-то правила эти придумал не я. Прочитал их ещё у Тома Кайта (автора книг по Oracle) и переформулировал их под Firebird. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2018, 10:30 |
|
|
start [/forum/topic.php?fid=40&msg=39662956&tid=1561060]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 461ms |
0 / 0 |