Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2006, 13:36   #1
pups
Новичок
Джуниор
 
Регистрация: 15.11.2006
Сообщений: 2
По умолчанию удалить записи в таблице Dbf.

Подскажите пожалуйста,

есть таблица в DBF файле. Нужно её очистить от записей.
пишу

Table1.First;
while not Table1.Eof do
begin
Table1.Delete;
end;

Но после этого в DBF происходит не удаление записей а лишь пометка на удаление.
Подскажите как либо сжать, либо другой вариант очистки.
pups вне форума Ответить с цитированием
Старый 15.11.2006, 16:04   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Восклицание

Table.Post - изменения записываются в базу;
Table.Cancel до этого - отмена изменений.
Берегите друг друга!

Последний раз редактировалось Virtson; 15.11.2006 в 16:22.
Virtson вне форума Ответить с цитированием
Старый 28.11.2006, 12:07   #3
Alexandrov
 
Аватар для Alexandrov
 
Регистрация: 28.11.2006
Сообщений: 4
Радость

Чтобы удалить из *.dbf записи, помеченные на удаление, нужно сделать:

table1.Сlose;
table1.exclusive:= true;
table1.Open;

dbipacktable(table1.dbhandle,table1 .Handle,nil,nil,false);
table1.Сlose;

не забудь в Uses прописать BDE.

Удачи.
Пусть о себе мнит каждый, что хочет. /Овидий/
Alexandrov вне форума Ответить с цитированием
Старый 28.11.2006, 12:48   #4
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию

Для твоего случая есть такой пример (из хелпа):
with Table1 do
begin
Active := False;
DatabaseName := 'Delphi_Demos';
TableName := 'CustInfo';
TableType := ttParadox;
EmptyTable;
end;
Естественно 2,3,4 свойство можешь задавать еще в редакторе для свего Table.
nova-alex вне форума Ответить с цитированием
Старый 28.11.2006, 13:03   #5
Alexandrov
 
Аватар для Alexandrov
 
Регистрация: 28.11.2006
Сообщений: 4
Восклицание

Цитата:
Сообщение от nova-alex Посмотреть сообщение
.......TableType := ttParadox;
Человек ведь задавал вопрос относительно DBF файлов а не Paradox.
В таблицах Paradox записи и так исчезают из таблицы, а в DBF они помечаются для удаления и полностью удаляются только если упаковать таблицу (dbipacktable).(Конечно, если нужно полность удалить все записи, тогда просто вызвать Table1.EmptyTable;)

После пакования таблицы рекомендуется её переиндексировать
dbiregenindexes(Table1.Handle);
Пусть о себе мнит каждый, что хочет. /Овидий/
Alexandrov вне форума Ответить с цитированием
Старый 28.11.2006, 13:20   #6
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Alexandrov Посмотреть сообщение
Человек ведь задавал вопрос относительно DBF файлов а не Paradox.
Благодарю за конкретику. Я в предудущем сообщении написал, что это свойство можно менять, а пример из хелпа.
nova-alex вне форума Ответить с цитированием
Старый 15.12.2006, 13:43   #7
SALEM
 
Регистрация: 20.11.2006
Сообщений: 5
По умолчанию

Пример:
Query1.SQL.ADD('DELETE FROM "MyTable" Table1');
SALEM вне форума Ответить с цитированием
Старый 15.12.2006, 19:19   #8
Nemon
Армия Рассейская
Форумчанин
 
Аватар для Nemon
 
Регистрация: 06.12.2006
Сообщений: 175
По умолчанию

table1.executive:=true;
table1.emptyTable;
table1.executive:=false;
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН
Nemon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить 2 записи. ADO... Roof БД в Delphi 9 18.08.2008 20:32
поиск в таблице puma Помощь студентам 3 22.04.2008 23:56
Подскажите как программно удалить все записи Worms БД в Delphi 3 04.03.2008 16:30
Поиск в таблице Voffka БД в Delphi 1 08.05.2007 01:16
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36