|
|
|
| Доброго времени суток всем.
После планового сжатия бд отвалились все обновляемые рекордсеты.
Не получается добавить запись ни в одной ворме.
Выдает ошибку: "Действие прервано связанным объектом"
Что случилось с базой? И как это вылечить ? | |
|
| |
|
|
|
| У вас таблицы родные или присоединенные? Сохранились ли ключевые и уникальные поля? Не превратились ли поля "Счетчик" в "Длинное целое"? Связи между таблицами остались "1-многие"? Если речь об MDB, то, если файл закрыт, LDB рядом остается? Если да, удалить можно?
В форме добавить нельзя, а в таблице? Если таблицы присоединенные, то можно ли добавлять записи в родном для таблиц файле?
Как давно делали резервное копирование? | |
|
| |
|
|
|
| Таблицы прилинкованные. Т.е. Основная БД --> Клиентская БД.
Все ключи и типы данных на месте. Схема данных так же на месте.
.ldb не остается.
Напрямую в таблицу добавить можно. Как в основной базе, так и через клиентскую часть.
Последняя рез.копия - в пятницу ночью. Восстановил из копии - все замечательно работает, но выпал день пятницы (моя вина. расписание не продумал).
Попытка удалить в востановленной рабочей копии таблы и экспортнуть из "сломанной" результата не принесли. Т.е. рекордсеты не работают.
Вот (( | |
|
| |
|
|
|
| >Попытка удалить в востановленной рабочей копии таблы и экспортнуть из "сломанной" >результата не принесли. Т.е. рекордсеты не работают.
Чудеса! В таблицу запись добавить можно, а через форму в эту же таблицу нельзя? Или все формы построены на нескольких таблицах? Тогда можно ли добавить в запрос формы, открытый непосредственно? Я бы еще подумал, что формы повредились, но из ваших слов вытекает, что форма, нормально работающая в восстановленной копии с родной таблицей перестает работать с импортированной? А нельзя ли в новый MDB экспортнуть 1-2 таблицы и форму лежащую на них, и выложить здесь?
Кстати, ИМХО, нужно не заменять старые таблицы битыми, а добаить данные за пятницу запроcами INSERT INTO (все поля, включая счетчики) в порядке подчиненности таблиц. | |
|
| |
|
|
|
| >Чудеса!
Еще какие. Аж глаза на лоб )))
>В таблицу запись добавить можно, а через форму в эту же таблицу нельзя?
Именно так. При открытии этой формы в строке состояния базы сразу пишется - Recordset не является обновляемым. А вот в рез.копии - не пишется.
>Или все формы построены на нескольких таблицах?
Основные формы, как правило, на запросах. Где-то источник строк подставляется при открытии формы. Вобщем по разному.
>Тогда можно ли добавить в запрос формы, открытый непосредственно?
Не понял вопроса )
>Я бы еще подумал, что формы повредились, но из ваших слов вытекает, что форма, >нормально работающая в восстановленной копии с родной таблицей перестает работать с
>импортированной?
Именно так-2 )))
>А нельзя ли в новый MDB экспортнуть 1-2 таблицы и форму лежащую на них, и выложить здесь?
К сожалению увы нет (
>Кстати, ИМХО, нужно не заменять старые таблицы битыми, а добавить данные за пятницу запроcами INSERT INTO (все поля,>включая счетчики) в порядке подчиненности таблиц.
Похоже это единственный вариант. Но что дальше? Не сжимать базу совсем? Она же когда-нибуть распухнет и совсем отвалится. | |
|
| |
|
|
|
| >>Тогда можно ли добавить в запрос формы, открытый непосредственно?
>Не понял вопроса )
Имелось ввиду, что в конструкторе формы щелкнуть на свойсте RecordSource, открыть конструктор запроса, открыть запрос, внести запись. И это, видимо, получится. :)
Могу еще посоветовать Decompile, но на этом, не видя примера, - я иссяк. | |
|
| |
|
|
|
| >Имелось ввиду, что в конструкторе формы щелкнуть на свойсте RecordSource, открыть >конструктор запроса, открыть запрос, внести запись. И это, видимо, получится. :)
Не добавляет.
>Могу еще посоветовать Decompile, но на этом, не видя примера, - я иссяк.
В основной БД только таблицы. И ни строчки кода. Декомпиль я конечно делал, но это ничего не дало.
Пример смогу сделать, но со временем проблема как всегда.
Накопал тут статейку http://support.microsoft.com/kb/189851
Но как она может помочь - не понял что-то ) | |
|
| |
|
|
|
| А связи меж таблицами - они как?
А скопировать в другую базу тбл, запрос и форму. | |
|
| |
|
|
|
| >Не добавляет.
Ух ты!!!
А как выглядят связи между таблицами в конструкторе запроса?
А создать сохраненный запрос и добавлять в нем? А реактировать, удалять?
А если свойству "Уникальные записи" указать ДА?
Подозреваю, что виноваты индексы. Вы не пробовали восстановить БД другими средствами (JetComp.exe, с помощью ODBC драйвера, другими приблудами.) | |
|
| |
|
|
|
| Всем спасибо за ответы.
Все "починилось". Чудес, как известно, не бывает ) Слетел один ключ, соответственно слетел индекс, и соответственно слетело 2 связи. Прошу прощения за свою невнимательность.
Что конкретно слетело обнаружилось в таблице MSysCompactError ))) | |
|
| |