Работа с удаленными записями
Файлы DBF устроены таким образом, что удаление записи не приводит к физическому удалению записи из файла. Запись просто помечается на удаление и пропускается при переборе. Таким образом, размер файла остается прежним. Чтобы физически удалить все помеченные на удаление записи нужно применить метод Сжать(). Средства встроенного языка позволяют работать с такими записями, перебирать их и даже отменять пометку на удаление.
Файл.ПоказыватьУдаленные(1); Файл.Первая(); Пока Файл.ВКонце()=0 Цикл ......Если Файл.ЗаписьУдалена()=1 Тогда ............Файл.Восстановить(); ......КонецЕсли; ......Файл.Следующая(); КонецЦикла; Файл.Первая(); Пока Файл.ВКонце()=0 Цикл ......Если Файл.PRICE < 1000 Тогда ............Файл.Удалить(); ......КонецЕсли; ......Файл.Следующая(); КонецЦикла; Файл.Сжать(); //удалить записи физически
Можно удалить все записи в файле одним движением. При этом они физически удаляются и не могут быть восстановлены.
Файл.ОчиститьФайл();
Стоит еще отметить про метод Очистить(), что он очищает все поля текущей записи. Атрибуты, соответствующие полям типа “строковый”, приобретают значение «пустая строка», числовой — 0, логический — 0, дата — «пустая дата».
|