Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление записей в Paradox из Delphi [D5, Paradox]


AlexeyMir ©   (2002-11-07 13:38:00) 

При удалении записей в БД Paradox, физический размер базы не уменьшается, хотя она пустая, Как сделать, чтобы при удалении записей и БД тоже уменьшалась?


MsGuns   (2002-11-07 16:20:00) [1]

Так устроен не только Paradox, но и большиноство движков. При удалении записей он не удаляются из файла физически, а просто помечаются как удаленные. В некоторых БД (dBase) и можно "реанимировать". Когда будет добавляться новая запись, движок найдет ей "нишку" и не будет требовать у ОС дополнительных кластеров диска, что существенно уменьшает дефрагментацию и увеличивает скорость обмена информацией.
Если очень хоцца уменьшить физ.место БД на диске (например, после удаления из БД устаревшей инфы), то делается "упаковка", которая заключается в том, что из таблицы извлекаются все активные записи (SELECT *) в некоторую временную, затем таблица пересоздается (Empty), и затем записи из врем.НД записываются назад. Иногда после такой "чистки" таблицы действительно начинают "летать" (для Парадокса так точно)


AlexeyMir   (2002-11-07 13:42:00) [2]

И еще, с БД работаем через TTable


Наверх

Титульная страница Поиск, карта сайта Написать письмо