Иногда возникает необходимость поработать с таблицей dBASE напрямую, без
Borland Database Engine (BDE). К примеру, если .DBT-файл (содержащий
MEMO-данные) для данной таблицы безвозвратно потерян, .DBF-файл становится
абсолютно непригодным, поскольку байт в заголовке .DBF-файла указывает, что
таблица должна содержать соответствующий MEMO-файл. Решение этой проблемы
потребует обнуление этого байта, для того чтобы таблица не указывала на
сопутствующий MEMO-файл. Или, если Вам захотелось написать собственную программу
для работы с данными.
В таблицах dBASE записи не удаляются до тех пор, пока таблица не будет
упакована. Пока же это не произойдет, удаленные записи остаются в таблице,
только имеют при этом флажок "к удалению". Для того, чтобы показать эти
существующие, но не отображаемые записи, существует функция ShowDeleted(),
которая использует функцию BDE API DbiSetProp(), показывающая записи, помеченные
к удалению. При использовании этой функции нет необходимости закрывать и вновь
открывать таблицу. ShowDeleted() в качестве параметров передается TTable и
логическое значение. Логический параметр указывает на необходимость показа
удаленных записей.
Для начала вы должны включить SoftDeletes, после чего вы сможете
просматривать записи, помеченные к удалению. В противном случае, вы их не
увидите. По умолчанию, для файлов DBF, SoftDeletes установлен в False. Вот
логика работы: