C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Проблемы с удалением записей
BaiT
Отправлено: 17.06.2006, 11:55


Ученик-кочегар

Группа: Участник
Сообщений: 6



Подскажите в чем проблема.

В базе данных формата dBase 5.0 пытаюсь удалить запись с помощью функции ADOTable1->Delete(). Но запись удаляется только визуально, т.е. в программе её не видно, но в файле *.dbf она остаётся.
Никаких транзакций не использую. Кеширования тоже нет.

P.S. Если открыть файл *.dbf с помощью Database Desktop, то якобы удаленные записи не отражаются, но нумерация записей ведется с их учетом.
olegenty
Отправлено: 17.06.2006, 12:21


Ветеран

Группа: Модератор
Сообщений: 2412



ну так поинтересуйся, что такое dbf и что там такое есть удаление. сразу окажется, что записи ФИЗИЧЕСКИ НЕ УДАЛЯЮТСЯ, а лишь помечаются, как удалённые символом "*". для физического удаления записей *.DBF надо паковать.
BaiT
Отправлено: 17.06.2006, 16:31


Ученик-кочегар

Группа: Участник
Сообщений: 6



Виноват, не поинтересовался. Но не мог бы ты еще объяснить глупому, что такое есть "паковать" (и если не трудно какой-нибудь пример)?

Просто я с БД работаю не более месяца и со многими приемами еще не знаком. Заранее спасибо!

Отредактировано BaiT — 17/06/2006, 16:31
olegenty
Отправлено: 19.06.2006, 07:55


Ветеран

Группа: Модератор
Сообщений: 2412



паковать, это значит ты запустишь нечто, что физически удалит записи, помеченные звёздочками. либо тулзу, либо средствами BDE, что-то там такое возможно, но не помню, BDE не пользуюсь больше 5-и лет.

Вернуться в Работа с базами данных в C++Builder