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

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

корректная очистка таблицы [D5, dBase, FoxPro]


CODC ©   (2002-06-05 06:31:00) 

Добрый день утро вечер уважаемые.Вопрос : как корректно очистить таблицу(*.dbf)аналог Database desktop (Utilites->Empty->...)пробывал Table1.Delete но он удаляет только визуально...через Query делать delete тоже не то... пробую через Datamodule, получается но я не хочу с ним связываться а как проще низнаю ...подскажите...


Praco   (2002-06-05 13:31:00) [1]

А если Table is BUSY, то

Exclusive := true;
EmptyTable;

Nikolay M. © (05.06.02 13:18)
"И не связывайся TTable."
????

Наоборот, не связывайся с TQuery для локальных таблиц. TTable гораздо быстрее.


Nikolay M.   (2002-06-05 13:18:00) [2]


> через Query делать delete тоже не то...

как это не то?!
DELETE FROM MyTable - что здесь "не то"?
И не связывайся TTable: на каждый подобный метод ТTable найдется запрос SQL, для того он и существует. И не будет ошибок типа "Table is BUSY".


> пробую через Datamodule

DataModule - это, просто говоря, удобное хранилище компонент TDatabase, TQuery, TTable, etc. Удалять данные с помощью собственно DataModule нельзя.

Не понял смысла слов "корректно очистить", но догадываюсь, что может помочь такой обычный прием:
1) создаем новую таблицу такой же структуры: CREATE TABLE NewTable (...)
2) удаляем старую забэкапленную таблицу: DROP TABLE BackupTable
3) переименовываем текущую в бэкап: ALTER TABLE CurrentTable RENAME BackupTable
4) новую делаем текущей: ALTER TABLE NewTable RENAME CurrentTable
Т.е. в создаваемой в (1) таблице заново создаются индексы, нет никакого мусора - таблица действительно пустая.


CODC   (2002-06-05 12:26:00) [3]

Table is BUSY


Anatoly Podgoretsky   (2002-06-05 07:32:00) [4]

Все корректно, если корректно поставить вопрос, если в результате тебе нужна абсолютно чистая таблица, то или как указала fnatali или воссоздание таблицы с нуюя, если же тебе надо удалять не все записи, а выборочно, то Delete и последующая упаковка в удобное время.


fnatali   (2002-06-05 07:09:00) [5]

Table1.EmptyTable.


Наверх

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