| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > BLOB HAS BEEN MODIFIED |
| Автор: Sonya 27.5.2005, 18:59 |
| Неразрешимая проблема!!! Пожалуйста помогите кто может. При удалении одной из записей PARADOX таблицы выдается ошибка BLOB HAS BEEN MODIFIED, причем выдается при выборе совершенно другой записи На похожую проблему нашла у вас на форуме решение - цитата из англоязычного справочника: 1. Open up your table in Database Desktop. 2. Restructure it. 3. Define/Rebuild all your indexes. 4. Save the file. Взято с Delphi Knowledge Base http://www.baltsoft.com/ Если это и есть решение моей проблемы, то подскажите как выполнить пункты 2. и 3. |
| Автор: Vit 27.5.2005, 19:50 | ||
Соня, во-первых поменяйте клавиатуру - у вас Caps-Lock западает... Во-вторых, попробуйте после ЛЮБЫХ изменений таблицы (Post, Delete и т.п. ) сбрасывать буффера ввода-вывода на диск, что-то типа Table1.flushbuffers
Описанное решение - поможет восстановить базу данных, но не решить проблему возникновения этой ошибки в будущем |
| Автор: Sonya 30.5.2005, 13:53 |
| Об этой процедуре (flushbuffers) я уже читала у вас на форуме, в моем случае она не помогает Все оказалось сложнее и запущеней :( ошибка появляется даже при работе с базой в других приложениях -- Database Explorer или DataBase Desktop в одной из таблиц случайно нашла две записи никаким внешним способом не связаные между собой, но при очищении одного конкретного поля одной из них я пытаюсь навестись на вторую и получаю сообщение об этой ошибке. Тоесть в момент когда я чистила поле первой записи испортились данные во второй. Хотя до удаления со второй записью было все в порядке. Наверно у базы есть какой-то внутренний индекс который оказался когда-то поврежден, эта база довольно старая и большая, с ней много лет работают причем за это время работали разные люди и трудно предположить что с ней делали до меня. Подскажите что можно сделать. Возможно необходима переиндексация, если да то как ее сделать |
| Автор: Dynamic 30.5.2005, 20:28 |
| При удалении записи, содержащей BLOB, сначала удали значение из этого поля, а потом все остальные (можно в OnBeforeDelete). |
| Автор: Vit 1.6.2005, 14:03 |
| В Парадоксе или database desktop есть опция - repair table. Индексы там же можно удалить и создать новые |
| Автор: Sonya 2.6.2005, 15:40 |
| Я несколько дней промаялась с базой, перепробовав массу вариантов. Оказалось, что базу пару лет назад востанавливали и была нарушена индексация одной из таблиц. Я в Database Desktop убила индексы и создала новые и все прошло - всмысле ошибка перестала появляться. Спасибо всем за помощь! Я много лет пользуюсь интернетом, но первый раз посетила форум (и то только потому что "припекло"). Я в восторге! И даже зарегистрировалась! |
| Автор: Vit 3.6.2005, 15:19 | ||
Всегда рады и помочь и новым участникам! |