![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Пытаюсь добавить запись в таблицу через IbExpert, ошибку пишет:
internal gds software consistency check( can't continue after bugcheck). Таблицу в которую пытаюсь добавить недавно создал, думаю может что с структурой случилось. Может кто пояснить "предысторию" подобных ошибок и как их обычно лечат? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
у тебя повреждена база данных
Добавлено через 1 минуту и 49 секунд базе делал бэкап/рестор? Может ты с ключами напутал? Добавлено через 3 минуты и 33 секунды после gfix -v -f что видишь? что в firebird.log интересного? а gbak -b -g пробовал? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
можно попробовать gfix -mend
|
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
gfix нет, сейчас проверю.
"gbak -b -g" не пробовал, открыл список параметров gbak и "-g" что значит почему-то тут нет? Да и -b нету, есть -bu. Может книжка не всё говорит, в наше время влёт. В Firebird.log написана примерно таже ошибка: internal gds software consistency check(partner index description not found(175)) По-поводу ключей, вчера нашел как сделать так чтобы данные в таблицу добавлялись. Общая структура таблицы в которую НЕ добавляются записи: TABLE1: ID1, ID2, ...... PK: ID1, ID2 FK: ID1, ID2 Если честно когда делал очень сомневался можно ли PK и FK на одинаковые поля ссылать и главное нужно ли подобное(я уж молчу про хороший тон). Добавил ключи, всё работает ну я и забил. А потом когда сделал обновление для этой базы, вставка не работает. Если удалить FK, то записи нормально добавляются и никаких ошибок не возникает. Если удалить PK и оставить FK, то вставка попрежнему НЕ работает. Забыл: BackUp/Restore делал в первую очередь. Полёт нормальный в обе стороны. Это сообщение отредактировал(а) pavelv - 14.12.2007, 07:37 |
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Всё проверил, итог такой.
Gfix -v -full ничего не показывает. Gfix - mend с последующим Gbak -b -v -ig -g ничего не дал. Взял старую копию БД и провел теже изменения с той лишь разницей, что сделал PK:ID1, ID3(новое поле создал). Результата не дало, теже ошибки. Понятно, что это происходит из-за вторичного ключа, но каким именно образом не понимаю. У таблицы на которую сделан FK вторичных ключей нет, думал может из-за этого какие-то баги возникают. Кстати "select * from Table1" работает нормально, без каких либо ошибок. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Про лог уже писал, выдрал просто 1 в 1:
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
в firebird.log что, только одна строка?
|
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Рядом с базой окажусь только в понедельник. Но насколько я помню в логе было имя базы и на след. строке вышеописанная ошибка. Наврятли я что-то не так глянул, но как уже сказал в первый будний день гляну точнее.
Могу лишь сказать, что если из Table1 удалить вторичный ключ ссылающийся на TABLEN(так её обзовём), затем удалить ещё два вторичных ключа из других таблиц ссылающихся на туже самую TABLEN. После пересоздать первичный ключ в TABLEN и заново создать все вторичные, то всё работает. Как так происходит для меня загадка. Единственная идея, как буду рядом с базой попробовать опять с нуля провести все обновления и добавления таблиц непосредственно через IBExpert и последовательно проверять всё ли впорядке. Там думаю яснее будет в чем дело, может просто с первичным ключом что нет у TABLEN? Кстати я так понял gfix не проверяет состояние индексов, он лишь сообщает о некорректно введенной или поврежденной информации? |
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Насчет FireBird.log. Там было только две строки: первая имя базы и вторая ошибка которую я привел.
Сегодня открыл свою базу(до добавления данных) в IbExpert. Скриптом добавил туже Table1 с Pk и FK. Поля у ключей сделал разные. Пытался добавить хотябы одну запись вылетает таже ошибка. Сошелся на мысли, что мурыжить её сейчас времени нет и просто пересоздал первичный ключ у TableN, затем вернул все вторичные. Базу оставлю, думаю на выходных найду время пролистать все системные таблицы и всё-таки найти в чем было дело. Надеюсь получится ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Создай новую базу, перекинь все доступные записи, а "сломанную" оставь для экспериментов.
|
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Создавать новую нет смысла, достаточно пересоздать первичный ключ в одной из вышеописанных таблиц. А эту для экспериментов оставлю в любом случае, для патомкав если что
![]() |
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
В общем ошибка повторилась. Тогда сделал всё, пересоздав первичный ключ в родительской таблице. Сейчас понадобилось создать ещё одну таблицу и в неё вторичный ключ на Table1(ту в которойпрошлый раз пересоздал). Симптомы теже, всё аналогично. Начал смотреть, не вижу ровным счетом ничего предрассудительного. Тестил создавав другие таблицы со вторичным ключом на Table1, эффект тот же записи не добавлялись. Единственно, что внушало сомнения: Индекс по первичному ключу неактивен и активным его сделать эксперт не даёт. Сделал его активным через принудительно через алтер индекс. И о боже счастье ВСЕ ЗАРАБОТАЛО! Открыл свои умные книжки, нет ни слова о такой магии индексов. Может кто даст объяснения почему и как это было связано?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |