Страница 1 из 1

gdb напрямую из ib5.6 на yaffil887 - работает но я испортил

Добавлено: 09 апр 2005, 12:36
Karimych
База давно крутилась под ib5.6. Поставил яффил - тоже работает только в 3 раза быстрее.
Прямо днем заменил одно на другое.
1. остановил гардиан и сам нтнрбейз.
2. Поставил яфил.
3. Запустил яффил. Заработало!
4. Оказался баг с внешней функцией при работе под яфил.
6. Остановил яфффил.
5. из-за п.4 остановил яффил, заменил gds32.dll от IB5.6 в системной папке.
7. Запустил гардиан и сам интербейз.
8. проверил gfixом - база цела.
9. Все продолжили работу.
10. Спустя день Разработчик нашел причину пункта 4. Надо было уменьшить на 1 длину строки возвращаемой внешней процедурой.
11. При помощи quickdesk цепляюсь к базе, нахожу функцию изменяю что надо и нажимаю "Compile".
12. Выходит ошибка что-то вроде того, что операция не поддерживается для системных таблиц.
13!!!! Оказывается он DROPнул функцию а новую не создал - не смог.
14. Не могу создать функцию ни из под quickdesk ни ibexpert ни просто созданным скриптом.
15. gfix говорит что с базой все хорошо.
16. Делаю бэкап - все ок
17. Делаю ресторе - в конце на этапе пересчета индексов встает и ругается что индекс не уникальный.
18. В связи с отсутствием внешней функции у программы пропала некоторая функциональность - ругается на отсутствии функции.
19. Функцию добавить не могу - пишет ошибку, GFIX ничего не находит, GBAK-RESTORE не отрабатывает.
Помогите подскажите что сделать?

Добавлено: 09 апр 2005, 13:32
kdv
Не могу создать функцию ни из под quickdesk ни ibexpert ни просто созданным скриптом.
что значит "не могу"?

Добавлено: 09 апр 2005, 13:35
Гость
kdv писал(а):
Не могу создать функцию ни из под quickdesk ни ibexpert ни просто созданным скриптом.
что значит "не могу"?
Вот

Statement failed, SQLCODE = -607
unsuccessful metadata update
-DEFINE FUNCTION ARGUMENT failed
-internal error

Добавлено: 09 апр 2005, 14:06
Karimych
Вопрос снят, извините за беспокойство. restore прошло после удаления содержимого пары таблиц, чьи значения оказались не уникальными при построении уникального индекса. Слава богу это кэш остатков складской программы.
:-)

Добавлено: 09 апр 2005, 14:08
Karimych
И соответственно на восстановленной базе легко удалось объявить "утерянные" внешние функции

Добавлено: 09 апр 2005, 14:08
kdv
а база у тебя не битая, часом (internal error)? udf не может не объявиться. декларации udf плевать вообще на все, кроме уникальности имени функции. даже dll не нужна.

Добавлено: 09 апр 2005, 14:14
Гость
kdv писал(а):а база у тебя не битая, часом (internal error)? udf не может не объявиться. декларации udf плевать вообще на все, кроме уникальности имени функции. даже dll не нужна.
ДУМАЮ , база повела себя неадекватно из-за моей лени. Надо было сделать под иб56 копию, а под яффил восстановить. К тому же во времена старт-останова sql-сервера - скорее всего прервал хранимую процедуру пересчета остатков и нарушил целостность уникального столбца.
Дети, никогда так не делайте! :-)