|
|
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
VFP9 + XP Собрал до кучи в БД несколько фалов, организовал связи. Выставил везде RESTRICT. После Edit RI отвечаю "ДА" на вопрос о формировании триггеров и пр.ерунды с ними связанной. Все - ОК. Теперь пытаюсь сделать LW с родительского файла. Ничего постороннего. Только поля этого справочника. RUN Query нормально срабатывает. BROWSE высвечивается. Ничего не ввожу. Не изменяю. Захожу снова в Edit RI. Жму ОК. И тут появляется заголовок этой темы: Код: plaintext Чего это он пришел? Я его не звала... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 15:40 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Еще интересное наблюдение. Дал приятелю на VFP8 пока еще девственный DBC. Он "наваял" там тот же самый LV, успешно повторно сделал Edit RI с записью по "ДА" и вернул мне. Пробую. Все нормально запустилось, работает. Даже корректировать LV можно было. Доп. поля вводить. Edit RI после него проходило успешно. Но как только попытался снять копию с этого LV через "SAVE AS", а затем Edit RI с записью, заиграла траурная музыка: .DBC internal consistency error и "висяк"... Это у меня поганая версия 9-ки или вообще ее особенность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 16:30 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
посмотри здесь, похоже. http://www.sql.ru/forum/actualthread.aspx?tid=242155 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 17:22 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что не совсем то. Ведь после этой ошибки я ничего уже не могу с БД сделать, а у Sgek проблема со вводом новой записи. У меня сначала все капитально виснет и приходится снимать Фокс с выполнения. А при повторном входе пишет, что сбился индекс. Поэтому я ее просто восстанавливаю из архива, ибо прочитав на сайте рекомендации по исправлению БД, нич-ч-его не понял. :( Да, собственно у меня данные есть только в справочниках. Да и то корректные. И VALIDATE DATABASE не ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 20:12 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Ниже, в архивчике есть БД experiment.dbc. При попытке, например, сделать LV по любому полю из zakaz, затем Edit RI, возникает указанная ошибка. Попробовал и на VFP8. Тот же компот. Может, какое-нибудь обновление требуется, типа SP1, а у меня его нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 22:27 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
И вот изображеньице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 22:33 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Никаких резидентных антивирусов не запущено? Может монитор Касперского работает? Вообще-то, в описании к этой ошибке (1550) рекомендуют кроме команды Validate Database попробовать удалить индекс контейнера базы данных. Т.е. закрыть базу данных и физически удалить файл dbc_name.DCX. Здесь dbc_name - это имя контейнера базы данных. При последующем открытии базы данных этот индекс будет создан заново. Ну, и еще меня сильно смущает 2 паралельные связи: Operator - zakaz Operator - Client - zakaz Т.е., по сути, таблицы Operator и zakaz связаны 2 раза. Это потенциально опасная ситауция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 23:43 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Hi men dea! Обновление непременно требуется :) Уже вышел SP1 к VFP9 - качай и пробуй. А вообще если произошёл такой сбой, то надо попробовать (по порядку) - открыть dbc (монопольно) и выполнить VALIDATE DATABASE RECOVER. - попробовать открыть вис как таблицу - через USE MyDB.DBC EXCLUSIVE - и посмотреть что там не так (конечно тут нужен некоторый опыт и желательно сначала почитать описание структуры dbc - это есть в отчётах в папке Tools\FileSpec). Найденные ошибки пофиксить (например представления со "странными" именами - поудалять и их и связанные с ними записи о "полях" этих представлений). Файл потом PACK-овать. - удалить dcx файл и открыть dbc в среде (файл должен восстановится). - удалить dcx файл и попрбовать открыть базу как таблицу - на индекс ругнётся, но со второго раза должен открыть - далее по схеме описанной выше. - ну и конечно как крайняя мера - восстанавливать dbc их резервной копии - правда при этом может возникнуть рассогласование между тем что опсиано в dbc и тем что есть реально в dbf/cdx - лечить это сложно - VALIDATE DATABASE RECOVER просто убивает все "подозрительные" элементы - но в принципе руками (а лучше поискать утилиту для работы с dbc - особенно с её полем Properties, которое имеет бинарную структуру и "руками" очень сложно корректируется) можно почти всё поправить... > Ниже, в архивчике есть БД experiment.dbc. Ок, скачаем, посмотрим :) Надёюсь там и сама dbf и прочие файлы имеются :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 04:07 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Обновление скачаю, иного пути пока не видно. Ибо: 0. убрал одну связь, чтобы не было параллельности 1. Антивирусники отключил 2. открывал dbc (монопольно) и выполнял VALIDATE DATABASE RECOVER. 3. попробовал открыть вис как таблицу - через USE MyDB.DBC EXCLUSIVE - и посмотреть что там не так (конечно тут нужен некоторый опыт...) Интересно, но опыта нет. Буду набираться. :) 4. - удалял dcx файл и открывал dbc в среде (файл восстановился). Результат тот же... 5. - крайняя мера - восстанавливать dbc их резервной копии - только это и помогает. Прилагаю еще аррхивчик. Почти с той же бедой... :( Но зато обнаружил, что все-таки можно сделать LV через отверстие в филейной части... В архиве есть View1(работающий) и View3 (с ошибкой/в дизайнере на картинке видно поле name, а внутри файла-то нет.) LV3 не работает в режиме Browse, но модифицируется. Почему-то файл-источник выкидывается с первого захода. Повторно приходится его туда запихнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 07:45 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Сорри. Небольшое уточнение. Файл выкидывается не сразу, а после того, как создано было View3, запущено Edit RI. Выскакивает ошибка. На View3 вместо поля стоят вопросы. А когда все таки открываем, то поле на картинке есть, а файла нет. Вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 07:49 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Итак, все упрощаю донельзя. Все ниже делается в дизайнере (!). 1. Создаем простейшую БД с двумя таблицами: PARENT c единственным полем idPARENT (INTEGER, по нему же PRIMARY-ключ) и CHILD с парой полей: idCHILD и PARENT (оба INTEGER, по первому PRIMARY по второму REGULAR –индекс) Обе таблицы пустые, без записей. 2. Связываем их: parent-idPARENT - child-PARENT. Менять в Edit Referential Integrity ничего не нужно. 3. Создаем любую Local View все в том же дизайнере. Например, по полям таблицы CHILD. Убеждаемся, что все работает: BROWSE честно появился. См. картинку 1. 4. А теперь заходим в Edit RI и нажимаем "Да". Бежит "термометр" и видим картинку 2. Висяк... :( Вся выше написанное сводится к простому вопросу: "А как у вас? Так же? Или я что-то не то делаю? PS Пробовал на разных PC и в 8 и 9 версиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 20:24 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Да. Эффект тот же. Но лечиться это достаточно просто. ПЕРЕД попыткой создания RI надо переоткрыть созданный контейнер базы данных. Т.е. закрыть его и снова открыть. Видимо, просто не успели внесенные модификации реально попасть на диск. "Застряли" где-то на пол-пути. Переоткрытие файла принудительно заставляет завершиться этот процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2005, 21:02 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Hi men dea! Просиходит это лишь при эксклюзивно открытой базе (ну это это ясно - иначе RIBuilder не работает), и действительно после создания любого View (а возможно что и после создания просто таблицы, или внесения изменений определённого рода в имеющуюся таблицу). После этого в dbc появляются удалённые записи и она нуждается в упаковке (посмотреть на этот "мусор" можно если дать команду USE MyDBC.dbc AGAIN IN 0 + browse - конечно если установлено SET DELETED OFF). Лечится это паковкой базы данных (PACK DATABASE из командного окна или из меню Cleanup Database). Причём в версии RI построителя шедшей с VFP7 (и по видимому до того тоже) стояла специальная проверка, и сам построитель "ругался" насчёт того что "сначала упакуй базу, потом уж балуйся". Начиная с VFP8 подобную проверку из построителя исключили - и как видим совершенно напрасно... В принципе они могли бы и собственно PACK DATABASE в RIBuilder включить - он же по любому требует эксклюзивного открытия базы... Судя по всему идёт конфликт между тем что "видит" внутри себя фокс (он же открывает dbc в своей system data session), и тем что делает RIBuilder - он как раз открывает dbc как таблицу и вносит в неё изменения! Я так полагаю, что MSFT решила что проблема "несогласованного" изменения dbc открытой в системной сессии и в обычной пользовательской сессии решена - и потому проверку убрали - а проблема то осталась... Так что пожалуй стоит вернуть этот "костыль" на место в RIBuilder... P.S. Ситуация в VFP9SP1 не исправлена. Хотя конечно скачать его всё равно придётся :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 00:37 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Как выяснилось, закрытием БД дело не обойдется: все равно зависнем. Хотя Владимир М. задал правильное направление. Следуя его совету и немного покопавшись, я обнаружил, что сделав закрытие БД, нам еще придется заглянуть снова в LV, вернуть обратно вывалившуюся таблицу-источник. Да к тому же не забыть "замочить в сортире" хромой индексный файл БД (он сам потом восстановится). Иначе опять те же "мухи и котлеты". :) Рекомендации И.Королева еще не успел рассмотрел. Только что увидел сообщение. Может, еще более легкий путь. Надеюсь. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 02:46 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Ну, вот. Похоже все и разрешилось. Последовательность действий после создания LV: 1. Close Database 2. Open Database MyDb.dbc 3. Pack Database 4. Modify Database MyDb.dbc Несколько неудобно, но другие попытки упрощения вели к краху. Например, 1. Close Database 2. Modify Database MyDb.dbc 3. Pack Database (м.б. 4. Validate Database) или 1. Close Tables 2. Set View Off 3. Pack Data 4. Validate Database Спасибо всем за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 03:56 |
|
||
|
.DBC internal consistency error
|
|||
|---|---|---|---|
|
#18+
Hi men dea! Просто если ты пользуешься не пунктом меню Clean up database а командой PACK DATABASE, то надо закрыть окно Database designer. Т.е. либо так: - создали представление - закрыли окно DB designer, если оно было открыто - CLOSE TABLES - PACK DATABASE - MODIFY DATABASE (снова открыли окно дизайнера) - идём строить RI либо так: - создали представление - CLOSE TABLES (можно и просто руками в окне Data Session закрыть те таблицы, которые автоматом открыл View Designer) - выбрали "Clean up database" из меню "Database" - идём строить RI Видимо сам Database Designer чего-то мудрит, и PACK DATABASE не проходит если окно дизайнера открыто. Это кстати не позволит встроить PACK DATABASE в RIBuilder - видимо потому там и не пытались паковать базу, а лишь настойчиво предупреждали что "надоть Cleanup из меню сделать". Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 19:23 |
|
||
|
|

start [/forum/search_topic.php?author=Serdjio-07&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
23ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
7ms |
get forum list: |
11ms |
get settings: |
11ms |
get forum list: |
24ms |
get settings: |
6ms |
get forum list: |
15ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 7815ms |
| total: | 8089ms |

| 0 / 0 |
