Dmitri Kuzmenko wrote:
нет. здесь все ОК, кроме сообщения об ошибке. при построении FK
если в детали есть записи которых нет в мастере (логически
или физически поврежденная БД), выдается вот такое
сообщение. Лечится так:

1. поскольку это проблема создания индексов, база ресторится
целиком.
2. активируются "недоактивировавшиеся" индексы.
3. у индексов с данной проблемой ищутся ссылки на master
и т.п., где есть отсутствующие записи
4. запросом detail left join master с разной комбинацией
в where на is null/is not null ищутся пропавшие в мастере записи
5. по вкусу, или записи в мастере воссоздаются, или дропаются
записи в детали.

Ну, это все понятно. Т.к. был исходник базы - все поправил в нем и сделал нормальный b/r. Вопросы остались другие:
1) почему вначале было какое-то невразумительное сообщение про
Arithmetic exception, numeric overflow or string truncation?
Ну, это ладно, у клиента была IBConsole, может это ее глюки.
2) если б рестор не наткнулся на FK и дошел до конца, было бы В КОНЦЕ лога большими буквами написано *ERROR*, чтоб даже чайник понял, что что-то тут не так?

Ответить